gpt4 book ai didi

c# - 使用 Linq 比较两个列表以进行部分匹配

转载 作者:太空宇宙 更新时间:2023-11-03 19:03:09 25 4
gpt4 key购买 nike

我尝试查看其他一些问题,但找不到任何部分匹配的问题。

我有两个 List<string>

里面有代码。一个是选定代码的列表,一个是所需代码的列表。虽然整个代码列表是一棵树,所以它们有子代码。一个例子是代码 B代码 B.1代码 B.11

假设所需代码是 B,但它的树下的任何内容都满足该要求,因此如果选定代码是 A 和 C,则匹配将失败,但如果选定代码之一是 B.1,则它包含部分匹配。

我只需要知道是否有任何选定的代码部分匹配任何所需的代码。这是我目前对此的尝试。

//Required is List<string> and Selected is a List<string>
int count = (from c in Selected where c.Contains(Required.Any()) select c).Count();

我得到的错误是关于 Required.Any() 的,它无法从 bool 转换为 string。

抱歉,如果这令人困惑,请告诉我添加任何其他信息是否有帮助。

最佳答案

我想你需要这样的东西:

using System;
using System.Collections.Generic;
using System.Linq;

static class Program {
static void Main(string[] args) {
List<string> selected = new List<string> { "A", "B", "B.1", "B.11", "C" };
List<string> required = new List<string> { "B", "C" };
var matching = from s in selected where required.Any(r => s.StartsWith(r)) select s;
foreach (string m in matching) {
Console.WriteLine(m);
}
}
}

以这种方式在 required 上应用 Any 条件应该会给你匹配的元素 - 我不确定你是否应该使用 StartsWithContains,这取决于您的要求。

关于c# - 使用 Linq 比较两个列表以进行部分匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32710311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com