2

我是 .NET 和 C# 的新手,来自 Ruby 的背景。虽然我已经成功地用 C# 开发了几个小型应用程序,但我还有很多东西要学。不过,让我感到困惑的一件事是找到一种有效的方法来调用对象的多个方法。我将举一个使用字符串的例子。

我习惯于在 Ruby 中做这样的事情:

my_string = "The quick brown fox\tjumped over the lazy dog\t\n"
puts my_string.strip.split("\t")

然而,要在 C# 中完成同样的事情,这就是我现在知道要做的所有事情:

var myString = "The quick brown fox\tjumped over the lazy dog\t\n";
var myStringTrim = myString.Trim();
var myStringSplit = myStringTrim.Split('\t');
foreach (var s in myStringSplit)
    {
        Console.WriteLine(s);
    }

那么,在 C# 中是否有更有效的方法来完成此任务?

这个特殊的例子让我想知道如果我使用这种方法来读取、解析和处理一个大的文本文件或类似的东西,性能会发生什么变化。

4

3 回答 3

7

你可以myString.Trim().Split('\t');用 C#

你可以这样做,因为Trim()返回一个string对象,然后你可以调用Split()它,它返回一个数组。

但它不一定更“有效”。正在创建临时对象,即使您没有将它们存储在变量中。

于 2012-05-04T02:28:32.413 回答
4

这工作得很好......

var myString = "The quick brown fox\tjumped over the lazy dog\t\n".Trim().Split('\t');

这些方法是字符串对象的实例方法,它们的工作方式与您在 Ruby 中所期望的一样。

要记住的一件事是字符串是不可变的。也就是说,这些方法不会更改字符串变量的原始值,而是返回原始的修改副本。

于 2012-05-04T02:29:31.273 回答
2

您可以像这样将这些命令链接在一起:

myString.Trim().Split('\t').ForEach(s => Console.WriteLine(s));
于 2012-05-04T02:29:08.330 回答