从另一个列表创建列表,按特定索引筛选

时间:2013-11-26 15:31:11

标签: c# linq list

我有一个List<decimal>,我想从第一个List的子集创建一个新的List<decimal>

代码示例:

List<decimal> set1 = new List<decimal>() { 10, 20, 30, 40, 50 };

如何创建一个从index = 2到index = 4(30,40,50)的新List?

3 个答案:

答案 0 :(得分:3)

var set2 = set1.Skip(2).Take(3).ToList();

答案 1 :(得分:3)

var list = set1.Select((r, i) => new { Index = i, Value = r })
               .Where(t => t.Index >= 2 && t.Index <= 4)
               .Select(r => r.Value);

如果您想拥有一个List,可以将ToList附加到查询中。

输出

foreach (var item in list)
{
    Console.WriteLine(item);
}

输出:

30
40
50

答案 2 :(得分:3)

使用GetRange

var newlist = set1.GetRange(2,3);

您正在传递起始索引(2)和您将获得的项目数(3)