咨询区

  • Guy

我有下面一段伪代码:

string[] s = {"zero", "one", "two", "three", "four", "five"};var x =
s
.Select((a,i) => new {Value = a, Index = i})
.Where(b => b.Value.StartsWith("t"))
.Select(c => c.Index);

我想获取集合中是 c 开头项的索引,请注意,这个索引是原数组的索引,不是新集合的索引,请问我该如何实现?

回答区

  • Jon Skeet

非常简单,你可以用 foreach 再配合 yield 来实现,参考如下代码:

public static IEnumerable<int> IndexesWhere<T>(this IEnumerable<T> source, Func<T, bool> predicate)
{int index=0;foreach (T element in source){if (predicate(element)){yield return index;}index++;}
}

然后像下面这样使用。

static void Main(string[] args){string[] s = { "zero", "one", "two", "three", "four", "five" };var x = s.IndexesWhere(t => t.StartsWith("t"));}
  • tvanfosson

如果你仅仅是因为学习 Linq 的话,那可以忽略这个帖子,对我来说,我不清楚 Linq 是不是最终的优秀解决方案,但下面的代码肯定会更高效,而且还不会生成必要的 匿名类型,参考如下代码:

static void Main(string[] args){string[] s = { "zero", "one", "two", "three", "four", "five" };List<int> matchingIndices = new List<int>();for (int i = 0; i < s.Length; ++i){if (s[i].StartWith("t")){matchingIndices.Add(i);}}}
  • Terrence

我有一个好办法可以实现,首先提取出 集合 中的索引值,然后通过 索引值 获取集合元素,参考如下代码:

static void Main(string[] args){string[] s = { "zero", "one", "two", "three", "four", "five" };var indexes = s.Select((a, i) => i).Where(i => s[i].StartsWith("t"));}

虽然代码效率上会稍低一些,但我敢保证绝对是最简单的方法。

点评区

各位大佬提供了各种解题思路,

如何获取 Linq 查询结果集合中的索引?相关推荐

  1. 获取两个List集合中的不相同的对象

    import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;/* ...

  2. el表达式遍历list中的list_EL表达式获取map和list集合中的值 | 学步园

    Map的每个对象以key=value的形式给出 当forEach tag的item属性中的表达式的值是java.util.Map时,在var中命名的变量被设置为类型是java.util.Map.Ent ...

  3. 使用LINQ更新集合中的所有对象

    有没有办法使用LINQ执行以下操作? foreach (var c in collection) {c.PropertyToSet = value; } 为了澄清,我想遍历集合中的每个对象,然后更新每 ...

  4. MongoDB查询集合中的文档

    MongoDB查询集合中的文档 参考资料:http://blog.csdn.net/qq_36040184/article/details/54355085 测试: 集合中插入数据 > db.c ...

  5. mysql 查询数据库索引语句_利用SQL语句查询数据库中所有索引

    本章我们就要讲解一下如何利用sql语句来查询出数据库中所有索引明细.当然了,我们可以在microsoft sql server management studio中选择"表"- & ...

  6. MongoDB中的索引操作

    本文来说下MongoDB中的索引操作 文章目录 概述 createIndex() 方法 语法 createIndex() 可选参数 索引操作 测试实例 本文小结 概述 索引通常能够极大的提高查询的效率 ...

  7. 一篇文章带你搞定 MongoDB 中的索引(创建/查看/删除)

    索引就像图书的目录一样,可以让我们快速定位到需要的内容,关系型数据库中有索引,NoSQL 中当然也有,本文我们就先来简单介绍下 MongoDB 中的索引. 文章目录 一.索引创建 二.查看索引 三.删 ...

  8. linq查询不包含某个值的记录_【翻译】C#表达式中的动态查询

    当您使用LINQ来处理数据库时,这种体验是一种神奇的体验,对吗?你把数据库实体像一个普通的收集,使用Linq中像Where,Select或者 Take,这些简单的使用就能让代码可用了. 但是,让我们考 ...

  9. 技术图文:如何通过 LINQ 查找集合中的重复数据?

    背景 在前几天介绍的 如何利用C#实现Huffman编码? 的图文中有以下代码. private List<HuffmanTreeNode> CreateInitForest(string ...

最新文章

  1. 算法:多数元素,多种解法
  2. html也没锚点,css 锚点定位不了
  3. Oracle数据库监听配置|转|
  4. Swift与Objective-C的对比
  5. 五分钟带你了解前端开发,以及前端开发的发展机会
  6. 采集gpu_GPU温度的采集
  7. binlog数据库不写入binlog_mysql数据库备份及其恢复
  8. 在Zabbix中添加交换机端口监控
  9. java项目环境搭建
  10. GStreamer架构设计篇(四)
  11. java配置环境变量无效
  12. 数字电子技术基础——第二章 逻辑代数基础
  13. 软件测试:测试用例八大要素模板
  14. 解决办法:My Endnote Library.enl constrains an incorrect path
  15. 荣耀8更改微信提示音
  16. 利用python进行显著性分析
  17. demonstration记忆_记忆英语单词方法20种
  18. Google 以图搜图 - 相似图片搜索原理 - Java实现
  19. 抖音滑块以及轨迹分析
  20. 聊聊关于使用逻辑斯蒂回归的使用方法

热门文章

  1. tornado并发示例
  2. 看期货公司综合实力来评级的
  3. Linux内核编译+Busybox文件系统制作(基础)
  4. python浏览器自动化测试_Selenium+Python进行web自动化测试(Demo+API)
  5. 弘玑Cyclone成功入围《2022爱分析·流程挖掘厂商全景报告》,流程智能产品受到广泛关注
  6. eltable 无数据文案修改_记一次无数据库下动态更新文案的解决历程
  7. xray扫描器的使用
  8. 计算机科技文化节答辩活动主持稿,校园宿舍文化节活动主持词范例
  9. FR107对应 RS1M
  10. 【算法3】---滑动窗口(python)