gpt4 book ai didi

c# - 如何在没有内存分配的情况下将字符串与 char[] 进行比较?

转载 作者:行者123 更新时间:2023-11-30 19:10:49 27 4
gpt4 key购买 nike

在此示例中,我必须将数组转换为字符串才能使用内置的 String.Compare方法。

char[] array = {'a','b','c'};
string s = "abc";

// here is the extra string allocation
var arrayString = new String(array);

var compareResult = String.Compare(s, arrayString);

有没有一种无需额外分配字符串即可将字符串与 char 数组进行比较的简单方法?

注意:我在需要的地方需要比较语义“[a] 32 位有符号整数,表示两个比较对象之间的词法关系。”

小于零 -> strA 小于 strB。

零 -> strA 等于 strB。

大于零 -> strA 大于 strB。

(我在循环中做这个比较,我通过额外的字符串分配生成了很多额外的垃圾(25-100MB,基于我的输入大小)_。

我想我最终可能会亲自动手并自己编写代码。

最佳答案

试试这个

int len = Math.Min(array.Length, s.Length);
for (int i = 0; i < len; i++) {
if (s[i] < array[i]) return -1;
if (s[i] > array[i]) return +1;
}
return s.Length.Compare(array.Length);

关于c# - 如何在没有内存分配的情况下将字符串与 char[] 进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15394631/

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