1

私は次のものを持っています

public class AnswerDetail
{
    public int AnswerId { get; set; }
    public string Text { get; set; }
    public Nullable<bool> Correct { get; set; }
    public Nullable<bool> Response { get; set; }
}
  • クライアントから、応答フィールドが入力された AnswerDetail を受け取りました: AnswerDetail rfc
  • データベースから、正しいフィールドが入力された AnwerDetail を受け取りました: AnswerDetail afd

これらを組み合わせて、AnswerId、Text、Correct を afd から取得し、Response を rfc から取得する別の AnswerDetail オブジェクトを作成するにはどうすればよいですか?

更新: 質問を簡素化するために ClientAnswers クラスを削除しました

4

7 に答える 7

1

新しい を作成しAnswerDetail、正しいソースからプロパティを設定するだけです。

AnswerDetail adCombined = new AnswerDetail
{
    AnswerId = afd.AnswerId,
    Text = afd.Text,
    Correct = afd.Correct,
    Response = rfc.Response
};
于 2013-09-18T09:27:57.900 に答える
0

あなたの情報はリストについて述べていません。

なぜだめですか:

afd.Response = rfc.Response;
于 2013-09-18T09:39:29.513 に答える
0
rfc.Select(r=>
    new AnswerDetail
    {
        AnswerId =r.AnswerId,
        Text=r.Text,
        Response=r.Response,
        Correct=afd.Single(c=>c.AnswerId==r.AnswerId).Correct
    }
           );
于 2013-09-18T09:25:37.560 に答える
0

多分あなたはこれを試すことができます:

var combined = from rfcItem in rfc.Answers
               join afdItem in afd.Answers on rfcItem.AnswerId equals afdItem.AnswerId
               select new AnswerDetail 
               { 
                   AnswerId = afdItem.AnswerId,
                   Text = afdItem.Text,
                   Correct = afdItem.Correct,
                   Response = rfcItem.Response
               };
于 2013-09-18T09:26:12.173 に答える
0

すでにクライアントからのフィールドを持っていることを考えるとResponse、DB からの正しい答えで結果を更新するだけのケースです。

foreach (var a in rfc)
{
    a.Correct = afd.Answers.Single(x => x.AnswerId == a.AnswerId).Select(x => x.Correct);
}
于 2013-09-18T09:27:23.367 に答える