gpt4 book ai didi

c# - 在类中展平数组的动态方法?

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:55 25 4
gpt4 key购买 nike

我正在遍历包含 double 数组的对象。名字变了。想象一下这是 Lab 样本的对象,我正在尝试获取 Sample 对象的平面表示。

从:

Sample
{
public string Name
public string Type
...
public double[] RawReadings
}

例如:
Name,
RawRead1,
RawRead2,
RawRead3,
...
RawReadn

我如何finangle sample.RawReadings 给我数组中的所有n 个项目?
我不在乎它是否被命名。

为清楚起见进行编辑:我希望结果列表中的每个项目都具有名称,并且类中的属性与 RawReads 一样多。我不希望结果列表中的每个项目都有一个名称和一个数组 - 这与我所拥有的相同。

示例 LinQ:
from sample in Samples
select new
{
Name = sample.Name,
sample.RawReadings
}

这甚至可能吗?

编辑:
我正在将其提供给第 3 方 API 调用,该调用期望某种“行和列格式”。准确地说是 Aspose.Cells ImportCustomObject。可以通过多个调用来解决它并手动对齐它们,但这可能很棘手并且容易出错。

最佳答案

I want the each item in the resulting list to have the Name and as many doubles as there are RawReads.



你不能使用匿名类型来做到这一点。匿名类型具有在编译时指定的属性名称和类型,而您希望在执行时指定它们。目前尚不清楚您为什么要尝试这样做,但您最接近的方法是使用动态类型,您可以使用 expando:
public dynamic SampleToDynamic(Sample sample)
{
IDictionary<string, object> expando = new ExpandoObject();
expando["Name"] = sample.Name;
for (int i = 0; i < sample.RawReadings.Length; i++)
{
expando["RawRead" + (i + 1)] = sample.RawReadings[i];
}
return expando;
}

关于c# - 在类中展平数组的动态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32589263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com