मैं एक datatable, dtFoo है, और पंक्तियों को एक कुछ मानदंडों को पूरा की गिनती प्राप्त करना चाहते हैं को पूरा में पंक्तियों की गिनती हो रही है।एक datatable जो निश्चित सीमा
संपादित करें: यह डेटा एक डेटाबेस में संग्रहीत नहीं है, इसलिए एसक्यूएल का उपयोग कर एक विकल्प नहीं है।
अतीत में, मैं निम्नलिखित दो विधियों का उपयोग किया है यह पूरा करने के:
विधि 1
int numberOfRecords = 0;
DataRow[] rows;
rows = dtFoo.Select("IsActive = 'Y'");
numberOfRecords = rows.Length;
Console.WriteLine("Count: " + numberOfRecords.ToString());
विधि 2
int numberOfRecords = 0;
foreach (DataRow row in dtFoo.Rows)
{
if (row["IsActive"].ToString() == "Y")
{
numberOfRecords++;
}
}
Console.WriteLine("Count: " + numberOfRecords.ToString());
मेरे दुकान कोशिश कर रहा है कुछ चीजों पर मानकीकृत करने के लिए और यह एक मुद्दा है जो आया है। मैं सोच रहा हूं कि इनमें से कौन सी विधियां प्रदर्शन (और क्यों!) के मामले में सर्वोत्तम हैं, साथ ही साथ आमतौर पर उपयोग की जाने वाली चीज़ों के अनुसार।
इसके अलावा, वांछित परिणाम प्राप्त करने के बेहतर तरीके हैं?
उत्कृष्ट समाधान, क्या आप कृपया मुझे कुछ स्रोत बता सकते हैं जहां मैं LINQ के कई उदाहरण देख सकता हूं? –
@Saluce, dtFoo.AsEnumerable()। कहाँ (expr) गणनीय कन्वर्ट करने के लिए के रूप में हम dtFoo.Where (expr) का उपयोग कर सकते कोई जरूरत नहीं करता है भी पहले से ही गणनीय –
@Sunny_Sid यह सही नहीं है। आपको 'एन्यूमेरेबल' का उपयोग करने के लिए स्पष्ट रूप से 'गणना करने योग्य 'में परिवर्तित करना होगा। – saluce