лучший способ сравнить предметы внутри цикла - PullRequest
0 голосов
/ 09 апреля 2011

У меня есть коллекция объектов.Мне нужно перебрать коллекцию и создать другую коллекцию.каждый элемент во второй коллекции является функцией двух элементов в первых коллекциях.Итак, чтобы упростить задачу.

Предположим, что коллекция представляет собой набор целых чисел.

 List<int> myIntCollection = new List<int>() {1, 4, 6, 8, 7};

Мне нужно сгенерировать вторую коллекцию, в которой каждый элемент представляет собой сумму 2 элементов.в первой коллекции.поэтому вторая коллекция будет иметь эти элементы после преобразования.

 List<int> generatedCollection = new List<int>() {5, 10, 14, 15};

, как вы можете видеть, первый элемент равен 5 (что является суммой первых двух элементов в верхней коллекции), второй элемент равен10, которая является суммой второго и третьего элемента в первой коллекции и так далее.,

Ответы [ 3 ]

6 голосов
/ 09 апреля 2011

Вы можете использовать цикл for:

List<int> result = new List<int>(source.Count - 1);

for (int i = 0; i < source.Count - 1; i++)
    result.Add(source[i] + source[i + 1]);

Это не сложно!

0 голосов
/ 09 апреля 2011

Вы можете использовать метод Enumerable.Range, чтобы создать коллекцию на лету и получить сумму из двух элементов для каждого индекса:

List<int> generatedCollection =
  Enumerable.Range(0, myIntCollection.Length - 1)
  .Select(i => myIntCollection[i] + myIntCollection[i + 1])
  .ToList();
0 голосов
/ 09 апреля 2011
int i = 0;
generatedCollection.AddRange(
            myIntCollection.Where(j => i < myIntCollection.Count - 1).Select(
                j => myIntCollection[i] + myIntCollection[i++ + 1]));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...