0

我正在上传一个 Excel 文件,并在读取该文件后得到结果。

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

现在我需要检查上传数据中的任何列都不应该为

为此我的代码是:
问题大师是模型类

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);
      }

现在的问题是:
假设我得到三个不同的行,其中它们是一些空列,并且上述条件成立。

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>();

数据列表有匿名类型的对象,尝试在数据中创建 QuestionMaster 对象而不是任何类型的对象。

于 2012-09-10T11:48:04.113 回答
0

试试这个,它会在最后添加一个新项目到现有列表中,

列表作者 = 新列表
{
新作者 { 名称 = “Mahesh Chand”,书籍 = “ADO.NET 编程”,价格 = 49.95 },
新作者 { 名称 = “Neel Beniwal”,书籍 = “Jump Ball”,价格 = 19.95 },
new Author { Name = "Chris Love", Book = "Practical PWA", Price = 29.95 }
};
// 向列表中添加更多项目
authors.Add(new Author { Name = "Mahesh Chand", Book = "Graphics with GDI+", Price = 49.95 });
authors.Add(new Author { Name = "Mahesh Chand", Book = "Mastering C#", Price = 54.95 });
authors.Add(new Author { Name = "Mahesh Chand", Book = "Jumpstart Blockchain", Price = 44.95 });

关联

https://www.codegrepper.com/code-examples/csharp/add+object+to+generic+list+c%23

于 2021-02-24T09:24:37.153 回答