假设我有一个包含随机值的列表
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很难掌握。
答案 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。