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();
答
我已经看到你已经接受了答案,但对于进一步的搜索,也许这将适合太:
var arraySourceText = EditorController.ActiveDocument
.ActiveSegmentPair
.Source
.AllSubItems
.Cast<string>()
.ToArray();
+0
'Cast
完美,它实现它并且工作花哨。 – ib11