-2
public class parent
{
    public string abc { get; set; }
    public childclass pos { get; set; }
}

public class childclass
{
    public string value { get; set; }
}

現在、親クラスのコレクションを読んでいます

var obj =
(from dia in parent
    select new
    {
        abc = dia.abc,
        pos = new childclass()
        {
            value = dia.pos.value
        },
    })
.ToList();

linq to object を使用してネストされたクラス childclass を読み取るにはどうすればよいですか、この部分は機能していません

pos = new childclass()
{
    Value = dia.pos.Value
}, 

お知らせ下さい

4

2 に答える 2

1

C# では大文字と小文字が区別されます。valueクラスのフィールドにchildClassは小文字の「v」があります。LINQ ステートメントは、大文字の「V」を使用して参照しています。

次のコードを試してください。

var obj = (from dia in parent
            select new
            {
                abc = dia.abc,
                pos = new childclass()
                {
                    value = dia.pos.value // 'Value' has been changed to 'value'
                },
            }).ToList();

更新された LINQ ステートメントが機能することを確認するために実行したテストを次に示します。

var parents = new List<parent>()
{
    new parent{abc = "abc", pos = new childclass{ value = "value" }}
};
var obj =
            (from dia in parents // changed to 'parents' to match my variable above
            select new
            {
                abc = dia.abc,
                pos = new childclass()
                {
                    value = dia.pos.value
                },
            }).ToList();

foreach (var par in obj)
{
    Console.WriteLine(par);
}

結果の出力は次のとおりです。

"{ abc = abc, pos = ProgrammingTestBed.Program+childclass }"

于 2012-06-08T19:55:40.083 に答える
1

それは完全に機能します。あなたの問題は大文字と小文字が区別されると思います

クラス:

public class Parent
{
    public string Abc { get; set; }

    public Childclass Pos { get; set; }
}

public class Childclass
{
    public string Value { get; set; }
}

使用する:

var parent = new List<Parent> {                
    new Parent { Abc = "abc1", Pos = new Childclass { Value = "Value1" } },
    new Parent { Abc = "abc2", Pos = new Childclass { Value = "Value2" } }
};

var obj =(from dia in parent select new {
                abc = dia.Abc,
                pos = new Childclass()
                {
                    Value = dia.Pos.Value
                },
        }).ToList();
于 2012-06-08T20:04:12.780 に答える