【问题标题】:Visual C# converting custom IEnumerable to string[]Visual C# 将自定义 IEnumerable 转换为字符串 []
【发布时间】:2016-04-25 04:51:26
【问题描述】:

我正在用 C# 编写一个插件代码,并且有一个自定义的 IEnumerable 实际上是一个字符串数组。但是不能对数组元素进行字符串操作,因为它们不是<string> 类型。但我需要它们是字符串,我必须将它们作为字符串进行操作。

所以我添加了这两行代码来将数组转换为字符串:

var arrayRawSourceText = EditorController.ActiveDocument.ActiveSegmentPair.Source.AllSubItems.ToArray();
string[] arraySourceText = new string[arrayRawSourceText.Length];
for (int i = 0; i < arrayRawSourceText.Length; i++) { arraySourceText[i] = arrayRawSourceText[i].ToString(); }

只有两行,但我想知道是否有更简单的方法将数组转换为&lt;string&gt;。就像一个 lambda 表达式或任何其他使这更简单的方法。

【问题讨论】:

    标签: c# arrays string visual-studio plugins


    【解决方案1】:

    如果AllSubItems 实现IEnumerable 我想这段代码 sn-p 应该可以工作:

    var arraySourceText = EditorController.ActiveDocument
                                          .ActiveSegmentPair
                                          .Source
                                          .AllSubItems
                                          .Select(t => t.ToString())
                                          .ToArray();
    

    【讨论】:

      【解决方案2】:

      我已经看到你已经接受了一个答案,但是对于更多的搜索者来说,这可能也适合:

      var arraySourceText = EditorController.ActiveDocument
                                        .ActiveSegmentPair
                                        .Source
                                        .AllSubItems
                                        .Cast<string>()
                                        .ToArray();
      

      【讨论】:

      • Cast&lt;string&gt;() 不起作用,但 lambda 表达式可以。我相信选角要有限得多。不过还是谢谢。
      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多