首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在.NET中检查特定范围内的值列表

如何在.NET中检查特定范围内的值列表
EN

Stack Overflow用户
提问于 2016-01-22 11:09:16
回答 4查看 70关注 0票数 0

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

代码语言:javascript
复制
11, 22, 33, 44, 55, 66, 77, 88

我想提取20-60之间的所有值,比方说,它使用的值是40,带有偏移量的-20+20

所以我应该只买22,33,44,55

代码

代码语言:javascript
复制
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,这是很难掌握的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-01-22 11:11:45

如果您想要一个列表,请追加ToList

代码语言:javascript
复制
List<uint> CheckedList = List1.Where(t => t >= (Val - 20) && t <= (Val + 20)).ToList();
票数 6
EN

Stack Overflow用户

发布于 2016-01-22 11:16:53

你可以试试这个

代码语言:javascript
复制
List<uint> rangeList=new List<uint>();
foreach(var values in List1)
{
  if(values>=(val-20) && values<=(val+20))
  {
       rangeList.Add(values);
  }
}
票数 1
EN

Stack Overflow用户

发布于 2016-01-22 11:19:44

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

代码语言:javascript
复制
 List<uint> CheckedList = List1.Where(t => (Val - 20) >= t && t <= (Val + 20))
                               .ToList();

或者调用IEnumerable

代码语言:javascript
复制
 List<uint> CheckedList = new List<uint>(list1.Where(t => (Val - 20) >= t && t <= (Val + 20)));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34945273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档