我有一个DataTable
,它返回一个由多个以逗号分隔的值组成的列结果。
如何根据逗号分割DataTable
的此列?
由于
答案 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/