0

Excelファイルをアップロードしていますが、そのファイルを読んだ後、この結果が得られます。

 var data = from c in excel.Worksheet<QuestionMaster>()
            select new
            {
              c.Questionname,
              c.Answer1,
              c.Answer2,
              c.Answer3,
              c.Answer4,
              c.CorrectAnswer,
            };

ここで、アップロードされたデータの列がnullであってはならないことを確認する必要があります

そのための私のコードは次のとおりです。
質問マスターはモデルクラスです

QuestionMaster questions = new QuestionMaster();
QuestionMaster temp = new QuestionMaster();
List<QuestionMaster> ques = new List<QuestionMaster>();//
  foreach (var item in data)
   {
      int i = 0;
     if (item.Questionname == null || item.Answer1 == null || item.Answer2 == null ||   item.Answer3 == null || item.Answer4 == null || item.CorrectAnswer == null)
      {
          if (item.Questionname != null)
           temp.Questionname = item.Questionname.Trim();                            
         else
           temp.Questionname = "Question Name not Found in Uploaded Excel File";                            
         if (item.Answer1 != null)
           temp.Answer1 = item.Answer1.Trim();                            
         else
           temp.Answer1 = "Answer 1 Not Found in Uploaded Excel File";                            
                       \\Some more Couple of If-Else Conditions

ques.Add(temp);
      }

問題は次のとおりです
。3つの異なる行があり、その中にいくつかのヌル列があり、上記の条件が真になったとします。

ques.add (temp)2 回目または 3 回目に実行されると、以前に追加された他のリスト アイテムが上書きされますが、リストに追加されたアイテムの数は変わりません。これは、リスト全体をtemp
の現在のデータで上書きしていることを意味します。

どこが間違っているのか教えてください。

前もって感謝します!!!

4

4 に答える 4

4

毎回ループ内に新しいオブジェクトを作成する必要があります。現在、ループの外にあるため、元のオブジェクトは変化し続けます

  foreach (var item in data)
   {
     QuestionMaster temp = new QuestionMaster();

   }
于 2012-09-10T11:45:18.713 に答える
1
if (ques.Contains(temp))
{
    //todo replace item
}
else
{
    ques.Add(temp);
}

ループで参照を再作成します

于 2012-09-10T11:43:32.150 に答える
0

リストには、QuestionMaster のオブジェクトが含まれています。

List<QuestionMaster> ques = new List<QuestionMaster>();

データ リストには Anonym 型のオブジェクトがあります。無名型のオブジェクトではなく、データ内に QuestionMaster オブジェクトを作成してみてください。

于 2012-09-10T11:48:04.113 に答える