从数据表中拆分逗号分隔值

时间:2013-11-29 12:28:12

标签: c# asp.net

我有一个DataTable,它返回一个由多个以逗号分隔的值组成的列结果。

如何根据逗号分割DataTable的此列?

由于

4 个答案:

答案 0 :(得分:1)

你想要的结果是什么?

如果您想要包含所有值的string[]

string[] allValues = dt.AsEnumerable()
    .SelectMany(r => r.Field<string>(0).Split(','))
    .ToArray();

如果您只想要IEnumerable<string[]>,其中每个元素都包含行的所有值:

IEnumerable<string[]> allRowValues = dt.AsEnumerable()
    .Select(r => r.Field<string>(0).Split(','));

在任何一种情况下,我使用String.Split从逗号分隔string[]获取string

编辑:“我有一个我想填写的列表”

然后,如果你真的需要它们作为对象,你可以将它们转换为object

List<object> allValues = dt.AsEnumerable()
    .SelectMany(r => r.Field<string>(0).Split(','))
    .Select(str => (object) str)
    .ToList();
如果您已经有一个要使用的列表,请

或使用List.AddRange

var allValues = dt.AsEnumerable()
    .SelectMany(r => r.Field<string>(0).Split(','))
    .Select(str => (object) str);

objectList.AddRange(allValues);

答案 1 :(得分:0)

试试这个:

//fruit dtcolumn values
string fruit = "Apple,Banana,Orange,Strawberry";
string[] split = fruit.Split(',');

foreach (string item in split)
{
    Console.WriteLine(item);
}

答案 2 :(得分:0)

试试这个

//datatable should contain result set
DataTable datatable = new DataTable();
datatable = YourQuery();

 if (datatable.Rows.Count > 0)
{
  foreach(int count=0;count < datatable.Rows ; count++ )
  {
    string result = datatable.Rows[count];
    string[] array = result.split(,);
    //do what you want to do
  }
}

答案 3 :(得分:0)

如果你想在c#中这样做,那就试试吧     表[ “COL1”]。的ToString()。分割( “”。ToCharArray())

但如果您想在SQL中执行此操作,请尝试以下操作: http://amerzafar.wordpress.com/2011/03/15/sql-function-to-convert-comma-separated-string-to-table/