gpt4 book ai didi

c# - 使用 LINQ 计算两个字符串之间的匹配字符

转载 作者:行者123 更新时间:2023-11-30 14:43:56 24 4
gpt4 key购买 nike

一位 friend 问我如何使用 LINQ 改进一些代码。您将如何对两个字符串进行逐字符比较以计算索引处的匹配数?这是原始代码,可以使用 LINQ 对其进行改进吗?

private int Fitness(string individual, string target)
{
int sum = 0;
for (int i = 0; i < individual.Length; i++)
if (individual[i] == target[i]) sum++;
return sum;
}

最佳答案

return Enumerable.Range(0, individual.Length)
.Count(i => individual[i] == target[i]);

更简单的方法是(如果 targetindividual 短,上面的代码片段将失败):

return Enumerable.Range(0, Math.Min(individual.Length, target.Length))
.Count(i => individual[i] == target[i]);

我相信代码是正确的。 Enumerable.Range方法有两个参数。其中第一个是起始索引(应该是 0),第二个是项目数。要测试并确保的完整代码片段:

class Program {
static void Main(string[] args) {
Console.WriteLine(Fitness("hello", "world"));
}
static int Fitness(string individual, string target) {
return Enumerable.Range(0, Math.Min(individual.Length, target.Length))
.Count(i => individual[i] == target[i]);
}
}

关于c# - 使用 LINQ 计算两个字符串之间的匹配字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1285347/

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