【发布时间】:2013-01-23 10:08:17
【问题描述】:
我有一个对象列表,其中对象具有一个字符串属性,该属性是一个逗号分隔的数字 ID 列表。
提取逗号分隔值并获取 int 数组的最有效方法是什么?
目前我的解决方案是这样的:
var allCsvs = objects
.Select(o => o.IdCsv); // the IdCsv is a string property, ie "1,2,3,4,5"
var allIds = string.Join(",", allCsvs);
var idArray = allIds.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select(id => Convert.ToInt32(id));
关于如何提高性能的任何想法?
更新:
对象可能如下所示:
class MyClass {
public string IdCsv { get; set; }
}
并且此类的一个实例可能会将其字符串属性IdCsv 设置为如下内容:"1,2,3,4,5"
【问题讨论】:
-
只是为了理解,
IdCsv已经是一串逗号分隔的 id 了吗? -
.Select(id => Convert.ToInt32(id));;这部分不在您原来的问题中,这让我觉得您想将字符串列表解析为 int 数组。 -
请告诉我们
objects后面的类,IdCsv是什么?