从现有列表中特定索引处的元素创建新列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从现有列表中特定索引处的元素创建新列表相关的知识,希望对你有一定的参考价值。

我有一个列表,并希望从中创建一个新列表,但只有特定索引的元素。

例如:

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

我不想重新发明这个轮子,是否有一些内置方式?

答案
var newList = new List<People>
{
  existingList[1],
  existingList[3],
  existingList[5],
  existingList[44]
};
另一答案

试试这个:

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

以上是关于从现有列表中特定索引处的元素创建新列表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 中的变量删除列表中特定索引处的元素? [复制]

如何替换python列表特定索引处的值?

如何从python列表中任何特定索引处的句子中提取特定字符串?

每次需要访问特定索引处的元素时是不是可以重新排序数组?

如何将特定索引处的列表数据发送到颤动中另一个列表的特定索引

Python:从每个新行从特定列表索引开始的列表创建数据框