如何填充数据表中的每个列

时间:2013-02-19 11:19:26

标签: c#

我正在迭代很多字符串,我希望用每个结果填充我的第一个(也是唯一的)3列,然后在新行中重新开始。喜欢:

A     |  B     | C
------+--------+------
"DOG" | "CAT"  | "FISH"    
"FDF" | "AAA"  | "RRR"    

等等....... 基本上每排后都是“满”开新行。

HtmlNodeCollection tables = doc.DocumentNode.SelectNodes("//table");
HtmlNodeCollection rows = tables[2].SelectNodes(".//tr");

DataTable dataTable = new DataTable();
dataTable.Columns.Add("A", typeof(string));
dataTable.Columns.Add("B", typeof(string));
dataTable.Columns.Add("C", typeof(string))

4 个答案:

答案 0 :(得分:4)

试试这个

 for (int i = 0; i < rows .Count(); i++)
            {

                DataRow datarowObj= dataTable .NewRow();
                datarowObj["A"] = yourValue;
                datarowObj["B"] = yourValue;
                datarowObj["C"] = yourValue;
                dataTable.Rows.Add(datarowObj);
            }

答案 1 :(得分:2)

您可以使用Linq的GroupBy将长列表拆分为3个小组:

抽样数据:

DataTable table = new DataTable();
table.Columns.Add("Col1");
table.Columns.Add("Col2");
table.Columns.Add("Col3");

List<string> longList = Enumerable.Range(1, 99).Select(i => "row " + i).ToList();

将长列表分为三部分:

var groupsWithThree = longList
    .Select((s, i) => new { Str = s, Index = i })
    .GroupBy(x => x.Index / 3);

将它们添加到表格中:

foreach (var group3 in groupsWithThree)
    table.Rows.Add(group3.First().Str, group3.ElementAt(1).Str, group3.Last().Str);

请注意,它假定列表可以被3整除。

答案 2 :(得分:1)

dataTable.Rows.Add(new object[] { "A1", "B1", "C1" })

// Alternatively
object[] arr = new object[] { "A2", "B2", "C2" };
dataTable.Rows.Add(arr);

答案 3 :(得分:1)

例如,在向DataTable添加空DataRow后使用DataRoxw进行管理: DataRow row = table.Rows[0]; foreach (object item in row.ItemArray) {