如何在.NET中的特定值范围内检查List的值

时间:2016-01-22 11:09:16

标签: c# .net linq list

假设我有一个包含随机值的列表

11, 22, 33, 44, 55, 66, 77, 88

我想提取20-60之间的所有值,让我们说使用值40与偏移-20+20

所以我应该只获得22,33,44,55

代码

uint Val = 40;
List<uint> List1 = new List<uint>() {11, 22, 33, 44, 55, 66, 77, 88};
List<uint> CheckedList = List1.Where(t => (Val - 20) >= t && t <= (Val + 20));

我尝试了这段代码而我无法将其编译为Linq很难掌握。

4 个答案:

答案 0 :(得分:6)

如果您需要列表,请附加ToList

List<uint> CheckedList = List1.Where(t => t >= (Val - 20) && t <= (Val + 20)).ToList();

答案 1 :(得分:1)

你可以试试这个

begin

答案 2 :(得分:1)

LINQ方法主要返回IEnumerable<T>,要获得List,您可以使用ToList方法:

 List<uint> CheckedList = List1.Where(t => (Val - 20) >= t && t <= (Val + 20))
                               .ToList();

或致电List constructor that takes IEnumerable<T>

 List<uint> CheckedList = new List<uint>(list1.Where(t => (Val - 20) >= t && t <= (Val + 20)));

答案 3 :(得分:1)

 List<uint> CheckedList = List1.Where(t => t>= (Val - 20)  && t <= (Val + 20)).ToList();

结果:22,33,44和55。