c# - 使用 LINQ 从数据表的列中消除逗号 (,)

标签 c# asp.net linq datatable

我有一个 DataTable,如下所示:

enter image description here

在上面的 DT 上使用下面的 LINQ 表达式之后:

if (dt.AsEnumerable().All(row => string.IsNullOrEmpty(row.Field<string>("SameReferences"))))
    BindOldReferences(dt);
else
{
    var grps = from row in dt.AsEnumerable()
               let RefID = row.Field<string>("ReferenceID")
               let RefDescription = row.Field<string>("ReferenceDescription")
               let ReferenceUrl = row.Field<string>("ReferenceUrl")
               let SortOrder = row.Field<int>("sortOrder")
               group row by new { RefDescription, ReferenceUrl, SortOrder } into groups
               select groups;

    dt = grps.Select(g =>
    {
        DataRow first = g.First();
        if (first.Field<string>("SameReferences") != null)
        {
            string duplicate = first.Field<int>("SortOrder").ToString();
            first.SetField("SameReferences", string.Format("{0},{1}", duplicate, first.Field<string>("SameReferences")));
         }
        return first;
    }).CopyToDataTable();
}

将上面的 LINQ 应用到 DT 后,它变成:

enter image description here

预期 DT 如下:当 Samereferences 列中有单个值时,消除 (,) 逗号。那么我必须对 LINQ 进行哪些更改才能获得预期的以下输出。

enter image description here

请帮助...!

最佳答案

您可以使用 String.Trim像这样的方法:-

first.SetField("SameReferences", string.Format("{0},{1}", duplicate, 
                first.Field<string>("SameReferences")).Trim(','));

它将删除所有结尾的逗号。

关于c# - 使用 LINQ 从数据表的列中消除逗号 (,),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32111393/

相关文章:

c# - 如何限制可以从 DLL 访问的内容?

c# - 当应用程序位于远程计算机上时,异常未定义

javascript - 如何在点击另一个页面时执行一个页面的javascript

c# - 单声道.rsp文件

c# - 我可以使用完整版的 Visual Studio 2010 来开发 Windows 7 Phone 应用程序而不是下载包吗

c# - 获取网格列的位置

c# - 从 EF6 模型自动生成的 TT 文件渲染默认参数说明符不允许错误

c# - LINQ复合选择问题

html - CsQuery - 获取两个选择器之间的兄弟值?

c# - 有效地检查 List<List<int>> 中的数字是否仅以正数或负数存在