2011-05-09 76 views
4

我有一些老同學找代碼如下:我在哪裏可以找到列表<T> .AddRange()方法?

IList<KeyValuePair<string, ValuePair>> ServicePairs = new List<KeyValuePair<string, ValuePair>>(); 
// ... 
foreach (KeyValuePair<string, string> Set in Services) 
{ 
    if (string.Format("{0} (Service)", Set.Value) == c.ColumnName) 
    { 
     ServicePairs.Add(new KeyValuePair<string, ValuePair>(c.Ordinal.ToString(), new ValuePair { Id = Set.Key, Title = Set.Value })); 
    } 
} 

ReSharper的是通過將其轉換爲以下建議我漂亮了一陣:

ServicePairs.AddRange(from Set in Services 
         where string.Format("{0} (Service)", Set.Value) == c.ColumnName 
         select new KeyValuePair<string, ValuePair>(
          c.Ordinal.ToString(), 
          new ValuePair { Id = Set.Key, Title = Set.Value })); 

我想什麼知道是 - 這個AddRange()方法來自哪裏 - 它是從Microsoft Prism還是別的地方?



UPDATE:它已經指出,這是List<T>類的一部分。顯然,它不是IList<T>界面的一部分,這是我混亂的根源。感謝大家。

回答

3
+0

由於頂部的這一些變化的最簡單方法托馬斯,我相信你是第一個迴應。 – splatto 2011-05-09 19:29:10

3

它是隸屬於BCL的List<T>的一部分。

+0

感謝您的幫助 – splatto 2011-05-09 19:30:19

2

List<T> in System.Collections.Generic iirc。

+0

感謝您的幫助! – splatto 2011-05-09 19:30:28

1

在VS發現,如果你對上的AddRange右鍵,選擇「轉到定義」

你會看到在類別

#region Assembly mscorlib.dll, v4.0.30319 
// C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\mscorlib.dll 
#endregion 
+0

在我的場景中,問題在於編譯器不知道AddRange()是什麼。有關更多信息,請參閱我的問題更新。 – splatto 2011-05-09 19:28:43

相關問題