加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 是否存在一个预先存在的函数,它将根据基数和“偏移量”返

发布时间:2020-12-15 18:21:42 所属栏目:百科 来源:网络整理
导读:我不想重新发明轮子:如果我想从给定数字中得到N范围内的每个整数,那么最有效的方法是什么? 我的意思是这样的: public Listint getIntsWithinN(int BaseInt,int Offset) …如果传入的args是7和3,结果将是4..10;如果传入的args是42和7,结果将是35..49等. UP
我不想重新发明轮子:如果我想从给定数字中得到N范围内的每个整数,那么最有效的方法是什么?

我的意思是这样的:

public List<int> getIntsWithinN(int BaseInt,int Offset)

…如果传入的args是7和3,结果将是4..10;如果传入的args是42和7,结果将是35..49等.

UPDATE

好的,我终于开始尝试实现这个了.但我不知道是否应该将我的List传递给ToList(),如下所示:

List<int> listInts = new List<int>();
. . .
Enumerable.Range(lineNum - Offset,Offset * 2 + 1).ToList(listInts);

……或者这样做:

listInts = Enumerable.Range(lineNum - Offset,Offset * 2 + 1).ToList();

…但我需要做的是多次调用,因此Intellisense描述看起来并不像我真正需要的那样.它说,“创建……列表…”

但我不希望每次都创建一个新的,我想要附加到现有的列表,并且最好同时忽略重复.

解决方法

preferably simultaneously disregarding duplicates

在那你应该考虑HashSet< int>.

var hashSet = new HashSet<int>();
hashSet.UnionWith(Enumerable.Range(lineNum - offset,offset * 2 + 1));

如果你想要一个列表,你可以在hashSet上调用ToList().您可能还希望在转换为列表时对其进行排序,因为HashSet< T>将项目保持在未定义的顺序.

var list = hashSet.OrderBy(i=>i).ToList();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读