gpt4 book ai didi

c# - 使用来自另一个字符串数组的字符串搜索字符串数组

转载 作者:行者123 更新时间:2023-12-02 05:36:39 24 4
gpt4 key购买 nike

如题。我得到了一个字符串数组和第二个字符串数组。我想以这种模式显示结果:第一个数组的第一个元素 - 然后是第二个数组中出现在第一个数组的第一个元素中的所有元素。在第一个数组的第二个元素和第二个数组中出现在第一个数组的第二个元素中的所有元素之后。等等。例如:

string[] arrayA = {"Lorem ipsum dolor sit amet, justo", "notgin like good cold beer"};
string[] arrayB = {"justo","beer","lorem"}
for (int i = 0; i < arrayA.Length; i++)
{
Console.WriteLine(arrayA[i]);

for (int j = 0; j < arrayB.Length; j++)
{
int controlIndex = arrayA[i].IndexOf(arrayB[j]);
if (controlIndex != -1)
{
Console.Write(" :--contains-->" + arrayB[j]);
}

}

所以结果应该是这样的:

  • Lorem ipsum dolor sit amet, justo :--contains--> justo,lorem
  • notgin like good cold beer :--contains--> beer.

但我的结果是: - Lorem ipsum dolor sit amet, justo :--contains--> justo - 不喜欢冰镇啤酒:--包含--> 啤酒

如您所见,没有列出lorem

最佳答案

如果您将问题分解一些,这一点都不难。首先,不要处理数组和其中的索引。只需使用 IEnumerable<T> ,它会让您的生活更轻松。

这是我的看法:

首先,您要从数组 needles 中查找所有字符串,它们是字符串的一部分,haystack .

public static IEnumerable<string> MatchingStrings(string haystack, IEnumerable<string> needles)
{
return needles.Where(needle => haystack.Contains(needle));
}

这将返回 needles 中所有字符串的 IEnumerable是 haystack 的一部分.

然后,您想简单地遍历所有搜索字符串,我称之为 haystacks .

    static void Main(string[] args)
{
var haystacks = new[] {
"Lorem ipsum dolor sit amet, justo",
"notgin like good cold beer"
};

var needles = new[] {"justo", "beer", "lorem"};

foreach (var haystack in haystacks) {
Console.Write(haystack + " contains --> ");
var matches = MatchingStrings(haystack, needles);

Console.WriteLine(String.Join(",", matches));
}

Console.ReadLine();
}

请注意 String.Contains() 区分大小写。所以“Lorem”不会匹配“lorem”。如果您想要这种行为,您必须先将它们转换为小写。

public static IEnumerable<string> MatchingStringsCaseInsensitive(string haystack, IEnumerable<string> needles)
{
var h = haystack.ToLower();
return needles.Where(needle => h.Contains(needle.ToLower()));
}

关于c# - 使用来自另一个字符串数组的字符串搜索字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11596835/

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