我有一些代码将循环DataRow
s和将DataRow
中的管道分隔列分成一个数组,然后到List<string>
。LINQ datarow字符串到数组,然后进入字符串列表
有没有更好的方法来使用LINQ来做到这一点?我试过了,但没有任何意义!
List<string> allSizes = new List<string>();
foreach (DataRow resultRow in results.Rows)
{
if (resultRow["Sizes"] != DBNull.Value)
{
string[] sizes = resultRow["Sizes"].ToString().Split('|');
foreach (string size in sizes)
{
if (!allSizes.Contains(size))
{
allSizes.Add(size);
}
}
}
}
注意,使用'Contains'上的列表不是特别有效。考虑到数据集很可能会变大,并且您检查它是否在列表中,或者不在每个项目中,这可能会变得昂贵。最好使用基于集合的数据结构来执行“Distinct”,这就是你正在做的事情,以及LINQ'Distinct'方法的作用。 – Servy