Где я могу найти метод List <T>.AddRange ()? - PullRequest
4 голосов
/ 09 мая 2011

У меня есть код старой школы, который выглядит следующим образом:

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 }));
    }
}

Решарпер предлагает немного покрасить его, преобразовав его в следующее:

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>, который был источником моего замешательства. Спасибо всем.

Ответы [ 4 ]

3 голосов
/ 09 мая 2011

Его часть List<T>, которая является частью BCL.

3 голосов
/ 09 мая 2011
2 голосов
/ 09 мая 2011

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

1 голос
/ 09 мая 2011

Самый простой способ узнать в VS, если щелкнуть правой кнопкой мыши на AddRange и выбрать «Перейти к определению»

Вы увидите некоторые варианты этого в верхней части класса

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