हमारे पास LINQ में यह सरणी है।List.Count() और IEnumerable.Count() अलग-अलग परिणाम क्यों देता है?
string[] colors = { "green", "brown", "blue", "red" };
और इस कोड को वापसी 0.
var list = new List<string>(colors);
IEnumerable<string> q3 = list.Where(c => c.Length == 3);
list.Remove("red");
listBox1.Items.Add("Oh! That is : " + q3.Count());
और अन्य वापसी 1.
var list = new List<string>(colors);
List<string> q3 = list.Where(c => c.Length == 3).ToList();
list.Remove("red");
listBox1.Items.Add("Oh! That is : " + q3.Count());
यह क्यों होता? सूची और Ienumerable के बीच अंतर क्या है?
[आस्थगित निष्पादन] (http://blogs.msdn.com/b/charlie/archive/2007/12/09/deferred-execution.aspx) शब्द आप खोज रहे हैं है। कई [में 'Enumerable' LINQ तरीकों] (http://msdn.microsoft.com/en-us/library/system.linq.enumerable_methods (v = vs.100) .aspx) lazily क्रियान्वित कर रहे हैं। की –
संभव डुप्लिकेट [IEnumerable और सरणी, IList और सूची के बीच क्या अंतर है?] (http://stackoverflow.com/questions/764748/whats-the-difference-between-ienumerable-and-array-ilist-and-list) – bit
@bit: यह वास्तव में इसका डुप्लिकेट नहीं है। यह वास्तव में LINQ में स्थगित निष्पादन के बारे में है। –