Создать новый список из элементов по определенным индексам в существующем списке - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть список, и я хочу создать из него новый список, но только из элементов с определенными индексами.

Например:

// Form a new list made of people at indices 1, 3, 5, 44.
List<People> newList = existingList.ElementsAt(1,3,5,44);

Я бы не хотел изобретать зановоколесо на этом, есть какой-то встроенный способ?

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018
var newList = new List<People>
{
  existingList[1],
  existingList[3],
  existingList[5],
  existingList[44]
};
0 голосов
/ 28 декабря 2018

Попробуйте:

HashSet<int> indexes = new HashSet<int>() { 1, 3, 5, 44 };
List<People> newList = existingList.Where(x => indexes.Contains(existingList.IndexOf(x))).ToList();

Или используйте обычный старый for цикл:

HashSet<int> indexes = new HashSet<int>() { 1, 3, 5, 44 };
List<int> newList = new List<int>();
for (int i = 0; i < existingList.Count; ++i)
    if (indexes.Contains(i))
        newList.Add(existingList[i]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...