C# 在C中基于属性名转换列表#

C# 在C中基于属性名转换列表#,c#,linq,C#,Linq,我有一个具有以下属性的类 public class Curve { public string CurveName { get; set; } public string RefSource { get; set; } public int price1 { get; set; } public int price2 { get; set; } public int price3 { get; se

我有一个具有以下属性的类

    public class Curve
    {
        public string CurveName { get; set; }

        public string RefSource { get; set; }
        public int price1 { get; set; }
        public int price2 { get; set; }
        public int price3 { get; set; }

        public static List<Curve> GetCurveList()
        {
            List<Curve> data = new List<Curve>()
            {
                new Curve() { CurveName="Lamar", price1 = 1, price2 = 101,price3=104,RefSource="Tome" },
                new Curve() { CurveName="Lamar", price1 = 2, price2 = 201,price3=204,RefSource="Richard" }
    }
基本上,源列表的两个项目应该基于refsource和每个属性(标题为price)生成一个包含6行的新列表,它需要如下所示

Name RefSource Hour Value lamar tom 1 1 lamar tom 2 101 lamar tom 3 104 lamar richard 1 2 lamar richard 2 201 lamar richard 3 204 名称参考源小时值 拉马尔汤姆11 拉马尔汤姆2 101 拉马尔汤姆3 104 拉马尔·理查德12 拉马尔·理查德2201 拉马尔·理查德3204 小时列是源列表中属性名称
Price1
price2
price3
的后缀。

尝试以下操作:

var query =
    from curve in Curve.GetCurveList()
    from result in new []
    {
        new { curve.CurveName, curve.RefSource, Hour = 1, Value = curve.price1 },
        new { curve.CurveName, curve.RefSource, Hour = 2, Value = curve.price2 },
        new { curve.CurveName, curve.RefSource, Hour = 3, Value = curve.price3 },
    }
    select result;
这给了我:

试试这个:

var query =
    from curve in Curve.GetCurveList()
    from result in new []
    {
        new { curve.CurveName, curve.RefSource, Hour = 1, Value = curve.price1 },
        new { curve.CurveName, curve.RefSource, Hour = 2, Value = curve.price2 },
        new { curve.CurveName, curve.RefSource, Hour = 3, Value = curve.price3 },
    }
    select result;
这给了我:


感谢您的回复并正确编辑我的问题,我是stack exchange的新手,,然而,在您的回复中,您硬编码了小时值,但我需要小时值作为Pricei属性的后缀,以便在小时中,属性Price7-7应为小时,类似地,属性“value”=Price7值应在中使用advance@NISHET-您的对象必须具有固定数量的这些属性,对吗?所以,你必须以某种方式动态地生成这些值,这对我来说毫无意义。您能更详细地解释一下您在做什么吗?谢谢您的回复并正确编辑了我的问题,我是stack exchange的新手,,然而,在您的回复中,您硬编码了小时值,但我需要小时值作为Pricei属性的后缀,以便在小时中,属性Price7-7应为小时,类似地,属性“value”=Price7值应在中使用advance@NISHET-您的对象必须具有固定数量的这些属性,对吗?所以,你必须以某种方式动态地生成这些值,这对我来说毫无意义。你能更详细地解释一下你在做什么吗?