gpt4 book ai didi

c# - 在列表c#中查找字符串的最长匹配

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:46 24 4
gpt4 key购买 nike

我有一个字符串列表,我需要在列表中找到我的搜索字符串的最长匹配项。

例如列表包含:“test”、“abc”、“testing”、“testingap”,我的搜索字符串是“testingapplication”

结果应该是 'testingap'

这是我到目前为止所做的,它完成了工作,但我正在寻找是否有更有效的方法来做到这一点

string search= "testingapplication";
List<string> names = new List<string>(new[] { "test", "abc", "testing", "testingap" });
List<string> matchedItems = new List<string>();

foreach (string item in names)
{
if (search.Contains(item))
{
matchedItems.Add(item);
Console.WriteLine(item);
}
}

var WordMatch= matchedItems.Aggregate("", (max, cur) => max.Length > cur.Length ? max : cur);
Console.WriteLine("WordMatch"+WordMatch);

最佳答案

由于您已经在使用 LINQ,您可以考虑通过 OrderByDescending() 按长度排序您的“名称”方法并使用 FirstOrDefault() 获取包含您的字符串的第一个如下所示:

var match = names.OrderByDescending(n => n.Length)
.FirstOrDefault(n => search.Contains(n));

if (match == null)
{
// No match was found, handle accordingly.
}
else
{
// match will contain your longest string
}

关于c# - 在列表c#中查找字符串的最长匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44209188/

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