C# 中的菊花链方法

本文关键字:方法 菊花链 | 更新日期: 2023-09-27 18:33:03

我是.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# 中完成此操作?

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

C# 中的菊花链方法

你可以在 C# 中执行myString.Trim().Split(''t');

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

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

这很好用...

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

这些方法是字符串对象的实例方法,并且将按照您希望它们在 Ruby 中执行的操作一样工作。

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

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

myString.Trim().Split(''t').ForEach(s => Console.WriteLine(s));