【问题标题】:Find item index with lambda or linkq in c# [closed]在c#中使用lambda或linq查找项目索引[关闭]
【发布时间】:2020-07-17 16:46:06
【问题描述】:

你好,我不会说英语,如果让你感到困惑,请原谅我。

在 c# 中,我有 3 个 String 列表。

list_one:文件地址列表。

list_two:用list_one制作的MD5列表。

list_three:使用 list_two 制作的 MD5 列表,但在此列表中,我从 list_two

收集重复项

问题

如何获取 list_three 中的每个项目并在 list_two 中搜索然后返回该索引。

但我不喜欢使用 for 或 foreach,因为这会减慢我的应用程序。

如何使用 linq 或 lambda 或任何最快的方式来做到这一点。

my lists Image

【问题讨论】:

  • for 或 foreach 并不比 linq 慢,而且非常适合做作业
  • @VladL 我需要为 11000 个项目执行此操作。你知道吗?
  • "但我不喜欢使用 for 或 foreach,因为这会减慢我的应用程序。"这种说法似乎源于对某事的严重误解。
  • 您好,欢迎来到 stackoverflow。您是否可以edit 将您现有的代码包含为 text 而不是屏幕截图?此处要求不要为此使用图像,请参阅Discourage screenshots of code and/or errorsWhy not upload images of code on SO when asking a question 了解原因。 minimal reproducible example 显示您目前拥有的代码以及您遇到的问题将是理想的,并最大限度地提高您获得帮助的机会。

标签: c# list lambda generic-list generic-lambda


【解决方案1】:

No 1 foeach 并不慢。但是要回答您想要的内容很简单,就像这样。

using System.Linq;  

List<string> list = new List<string>{"a","b","c","d"};
List<string> list2 = new List<string>{"a","c"};  

var result = list.Select((a, b) => new {Value = a, Index = b})
              .Where(x => list2.Any(d => d == x.Value))
              .Select(c => c.Index).ToArray();

现在result 包含所有匹配索引。Fiddle

【讨论】:

  • tnx 为您解答,但它不起作用
  • 它确实有效。检查我是否已更新
  • 又不行了
  • @rezaparsian 检查!
  • 它的工作我们忘记使用 ToList() 但答案是错误的。但我想我知道它的工作原理
猜你喜欢
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
相关资源
最近更新 更多