Visual C#将自定义IEnumerable转换为字符串[]

问题描述:

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

所以我已经添加了这些2行代码把数组转换为字符串:

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(); } 

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

如果AllSubItems实施IEnumerable我想这个代码片段应该工作:

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

完美,它实现它并且工作花哨。 – ib11

我已经看到你已经接受了答案,但对于进一步的搜索,也许这将适合太:

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

'Cast ()'不起作用,但是lambda表达式会。我相信演员会受到更多的限制。不过谢谢。 – ib11