2011-05-09 67 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

相关问题