我想知道 C#中是否有一种方法可以基于存储在另一个列表中的索引来获取子列表?
我是Linq的新手,而Google尚未回答我。
还有 Python -ic这样做的方式是什么?
当然,我已经在使用简单的循环来实现这一目标!
List<int> IndexList;
List<int> ObjList;
List<int> subList;
foreach ( var index in IndexList )
subList.Add(ObjList[index]);
答案 0 :(得分:1)
您可以编写一个包含索引和项目的查询,以便可以查看IndexList
是否包含索引,并且仅选择那些项目:
List<int> subList = ObjList
.Where((item, index) => IndexList.Contains(index))
.ToList();
答案 1 :(得分:0)
items = ["a","b","c"]
indexes = [1,2]
mappedList = list(filter(lambda item: items.index(item) in indexes, items))
print(mappedList) # prints: ['b', 'c']
以python实现来补充Rufus L的c#答案。
答案 2 :(得分:0)
Python的最佳解决方案:
[sublist[i] for i in indexlist]