我有一个包含项目的列表(假设有1000个项目)。我想从TimeInSecond
符合条件的列表中选择数据。
newList = oldList.Where(x => x.TimeInSecond >= 30 && x.TimeInSecond <= 90).ToList();
// the above query returns 20 items (from 10 to 20)
但是,我需要追加N
oldList
行数
// This is just an example of what I need, for example 10 next more items
newList = oldList.Where(x => x.TimeInSecond >= 30 && x.TimeInSecond <= 90).GetNextMoreItems(10).ToList() ;
// the above query returns (20 + 10) 30 items (from 1 to 30)
答案 0 :(得分:0)
您可以使用联盟或 AddRange 将新的10个项目附加到现有列表中。当然,数据类型必须相同。以下是 int 类型的示例:
List<int> l1 = new List<int>() {1,2,3 };
List<int> l2 = new List<int>() { 1,4,5,6};
l1.AddRange(l2); // l1 now contains {1,2,3,1,4,5,6}
// will remove duplicates using default Equality Comparer
var l3 = l1.Union(l2).ToList(); // contains {1,2,3,4,5,6}
以您的示例为例,它可能如下所示:
var list1 = oldList.Where(x => x.TimeInSecond >= 30 && x.TimeInSecond <= 90);
var list2 = GetNextMoreItems(10).ToList();
var finalList = list1.AddRange(list2);
根据评论进行修改 要排除您已选择的项目,可以使用除以外的相交。因此,对于上面的 int 示例:
var l4 = l3.Except(l1); // contains {4,5,6}
然后,要选择一定数量的元素,请附加 .Take(count)。