我有一个对象列表,其中的对象有一个字符串属性,它是逗号分隔的数字Ids列表。Linq查询选择逗号分隔列表
提取逗号分隔值并获取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字符串了吗? – digEmAll
'.Select(id => Convert.ToInt32(id));;'这部分不在你原来的问题中,这使我认为你想将字符串列表解析为int数组。 – Habib
请向我们展示'objects'背后的类,什么是'IdCsv'? –