我正在尝试创建一个DataRow,它从硬编码的字符串或字符串变量中获取一些值,并且集合的其余值System.Collections.Generic.Dictionary<string, double>.ValueCollection
是特定的。在我下面的尝试中,我会投射到一个阵列,但这不起作用。
DataTable source = new DataTable();
foreach (string sample in GridSource.SampleName)
{
SampleDictionaries sd = GridSource.Data.Where(x => GridSource.Data.IndexOf(x) == GridSource.SampleName.IndexOf(sample)).First();
source.Rows.Add(sample, "Average", sd.Avg.Values.ToArray());
source.Rows.Add("", "Std. Deviation", sd.StdDev.Values.ToArray());
}
我明白这里发生了什么。我的问题是:有一种简单的方法可以告诉DataRow&#34;用这个集合填充剩余的列值,&#34;或者我将不得不拿出一些循环去做呢?
答案 0 :(得分:2)
您可以做的是从datatable.NewRow()方法创建行。然后,您可以让行的items数组等于数据数组:
DataTable source = new DataTable();
foreach (string sample in GridSource.SampleName)
{
DataRow temp = source.NewRow();
SampleDictionaries sd = GridSource.Data.Where(x => GridSource.Data.IndexOf(x) == GridSource.SampleName.IndexOf(sample)).First();
temp.ItemArray = new object[]{sample, "Average"}.Concat(sd.Avg.Values.ToArray());
source.Rows.Add(temp);
temp = source.NewRow();
temp.ItemArray = new object[]{"", "Std. Deviation".Concat(sd.StdDev.Values.ToArray());
}
答案 1 :(得分:0)
在KMoussa的帮助下找到答案!
import random
def randomcolour():
foo = ['black', 'red']
for i in range(10):
mychoice = random.choice(foo)
print(i, mychoice)
if mychoice == "black":
print(i, "black")
else:
print(i, "red")
randomcolour()
与他推荐的内容非常相似,但最后却错过了第二次阵容。