我的数据表由一个名为"ID"的列组成.没有.此列中的值有所不同.有时,此Datatable在该ID列中提取3个ID,有时为2.现在,例如,我的数据表有三个值为1,2,3.我想要的是将这三个值放在一个字符串中,并用逗号分隔它们如下: -
string test= "1,2,3";
Run Code Online (Sandbox Code Playgroud)
如果Datatable有2个值,则string应如下: -
string test= "1,2";
Run Code Online (Sandbox Code Playgroud)
我确实尝试但是徒劳无功.请帮忙.谢谢.
编辑:-
DataTable dt=new DataTable;
dt = obj.GetIDs();
for (int i = 0; i < dt.Rows.Count; i++)
{
string test= "What should be here????";
}
Run Code Online (Sandbox Code Playgroud)
编辑2
foreach(DataRow dr in dt.Rows)
{
string str = str + "," + Convert.ToString(dr("ID"));
}
Run Code Online (Sandbox Code Playgroud)
@Rajeev ::尝试过这个..它说dr是一个变量但是用作方法.怎么了?
dec*_*one 16
只使用LINQ的一个班轮.
String result = table.AsEnumerable()
.Select(row => row["ID"].ToString())
.Aggregate((s1, s2) => String.Concat(s1, "," + s2));
Run Code Online (Sandbox Code Playgroud)
使用linq,这样做:
var idlist = table.AsEnumerable().Select( r => r.Field<string>("ID")).ToArray();
string result = string.Join(",", idlist);
Run Code Online (Sandbox Code Playgroud)
这个修复了你的最后一个例子
foreach(DataRow dr in dt.Rows)
{
string str = str + "," + Convert.ToString(dr["ID"]);
}
Run Code Online (Sandbox Code Playgroud)
您的问题是您正在尝试调用dr("ID"),但dr不是您的语法暗示的方法.请dr["ID"]改用以获取行的ID列.
但是,这最后一种方法也会给出结果",1,2,3",所以你最好像这样重写它(或使用我的LINQ变体):
List<string> myIds = new List<string>();
foreach(DataRow dr in dt.Rows)
{
myIds.Add( Convert.ToString(dr["ID"]));
}
string result = string.Join(",", myIds);
Run Code Online (Sandbox Code Playgroud)
像这样的东西:
DataTable dt = new DataTable();
string output;
for (int i = 0; i < dt.Rows.Count; i++)
{
output = output + dt.Rows[i]["ID"].ToString();
output += (i < dt.Rows.Count) ? "," : string.Empty;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39254 次 |
| 最近记录: |