-1

我有一个DataTable具有以下结构

ATM Fault
---------    
A01 34256
A02 56346
A03 98946

如何使用管道分隔符将其存储在一个字符串变量中

string temp="A01|34256,A02|56346,A03|98946";

我正在将我的 Linq 转换为 DataTable。但我似乎可以在 LINQ 本身中做到这一点

var diff = dtOpenEvent.AsEnumerable().Except(dtOutputTemp.AsEnumerable(), DataRowComparer.Default);
DataTable di = diff.CopyToDataTable();//This is the Datatable which i want to Convert

我如何通过仅修改var diff语句来实现相同的目的,以便无需在 DataTable 中进行转换

4

3 回答 3

1

使用 LINQ 和String.Join

var projectedList = dataTable
                       .AsEnumerable()
                       .Select(row => row["ATM"] + "|" + Convert.ToString(row["Fault"]));

string temp = String.Join(",", projectedList.ToArray());
于 2012-11-16T08:37:22.047 回答
1

怎么样

string result = string.Join(",", 
                mydatatable.AsEnumerable()
                .Select(x => x("ATM").ToString() + "|" + x("Fault").ToString()));
于 2012-11-16T08:38:00.597 回答
1

您可以先将ATMandFault与管道连接,然后将join它们与逗号连接:

IEnumerable<string> pairs = table
            .AsEnumerable()
            .Select(r => string.Format("{0}|{1}"
                 , r.Field<string>("ATM")
                 , r.Field<string>("Fault")));
string result = string.Join(",", pairs);
于 2012-11-16T08:42:12.317 回答