如何在2d矩阵中设置值

时间:2013-02-19 16:22:35

标签: c#

给定字符串:“a”,“b”,“c”,“d”,“e”,“f”,“g”,“h”,我如何安排它们如下:

-1-  -2- -3-    
 "a" "b" "c"  

-1-  -2- -3-  
"d"  "e"  "f"  

-1-  -2- -3-  
"g"  "h"  "df" 

1,2,3是列名称。 (在数据表中)

2 个答案:

答案 0 :(得分:0)

以下是使用Enumerable.GroupBy的Linq方法:

List<string> strings = new List<string>() { "a", "b", "c", "d", "e", "f", "g", "h" };
var trios = strings
    .Select((s, i) => new { Str = s, Index = i })
    .GroupBy(x => x.Index / 3);
foreach(var trio in trios){
    var newRow = table.Rows.Add(); // your DataTable here
    newRow.ItemArray = trio.Select(x => x.Str).ToArray();
}

如果列表可被3整除,则此方法也有效。

答案 1 :(得分:0)

foreach (var data in new[] { "a", "b", "c", "d", "e", "f", "g", "h", "df" }.Select((s, i) => new { Value = s, Column = i % 3 + 1 }))
{
    Insert(data.Column, data.Value);
}