LINQ datarow字符串到数组然后进入字符串列表

dha*_*rdy 2 c# linq

我有一些代码将循环DataRows并将一个管道分隔列DataRow分成一个数组,然后分成一个List<string>.

使用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);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*rvy 9

var allSizes = results.Rows.Cast<DataRow>()
    .Where(row => row["Sizes"] != DBNull.Value)
    .SelectMany(row => row["Sizes"].ToString().Split('|'))
    .Distinct()
    .ToList();
Run Code Online (Sandbox Code Playgroud)