是否有任何函数可以在C#(.NET)中相应地比较字符串的长度?

时间:2009-04-04 21:07:22

标签: c# string compare

对不起,我不知道长度是在施工时计算的!!

我有200个字符长的字符串A,5个字符长的字符串B. 如果我做

 int Al = A.length;
 int Bl = B.length;

并进行比较 - 一切似乎都很好但是如果我这样做几百万次  计算一些东西,对于我需要的东西来说太贵了。

更简单和更简洁的方法是可以比较两个字符串的一些函数,并告诉我何时另一个与另一个字符串相同。 类似于(compare_string_lengths(stringA,stringB) - >其中字符串B必须至少与字符串A一样长(字符),以便为函数返回TRUE。

是, 我知道函数不知道哪个字符串更短,但是如果两个字符串的长度并行计数,那么当一个字符串超过另一个字符串时,函数知道要“回答”的内容。

感谢任何提示。

2 个答案:

答案 0 :(得分:9)

如果您只需要知道字符串的长度是否不同(或者如果您希望在比较之前检查长度是否相等),我认为您不能比比较Length属性更快。从字符串中检索长度是O(1)操作。

实际比较你需要查看每个字符的字符串,这使得它成为O(n)操作。

编辑:

如果事情运行得太慢,你应该试着看一下探查器,最慢的部分是什么?也许是你的字符串构造花费时间?

答案 1 :(得分:1)

比比较两根琴弦的长度便宜一些。

如果要在字符串列表中查找字符串,请使用Hashtable,如:

    var x = new System.Collections.Generic.Dictionary<string, bool>();
    x.Add("string", true);
    if (x.ContainsKey("string"))
        Console.WriteLine("Found string.");

这非常快。