我有一些旧学校的代码如下:
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还是其他地方?
更新:有人指出这是List<T>
类的一部分。显然,它不是IList<T>
界面的一部分,这是我困惑的根源。谢谢大家。
答案 0 :(得分:3)
答案 1 :(得分:3)
它是List<T>
的一部分,是BCL的一部分。
答案 2 :(得分:2)
List<T>
iirc中的 System.Collections.Generic
。
答案 3 :(得分:1)
如果您右键单击AddRange并选择“转到定义”,则可以在VS中找到最简单的方法
您会在课程顶部看到一些变体
#region Assembly mscorlib.dll, v4.0.30319
// C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\mscorlib.dll
#endregion