C# 将两个或多个对象列表组合在一起

C# 将两个或多个对象列表组合在一起,c#,c#-4.0,c#-3.0,C#,C# 4.0,C# 3.0,这应该很简单,但不知什么原因,这是错误的我 数据库包含字符串SubjectId、bool QReport、int Q、int FY、List ANotes、int Id。 Id是键列,因此无法检索 我从数据库表中获取数据,如 var unotesxx = db.UNotesDB.First(X => x.SubjectId == model.SubjectId); 这将获取数据。然后我把它放到一个对象列表中 List<UNotesDB> UNotes = new List&l

这应该很简单,但不知什么原因,这是错误的我

数据库包含字符串SubjectId、bool QReport、int Q、int FY、List ANotes、int Id。 Id是键列,因此无法检索

我从数据库表中获取数据,如

var unotesxx = db.UNotesDB.First(X => x.SubjectId == model.SubjectId);
这将获取数据。然后我把它放到一个对象列表中

List<UNotesDB> UNotes = new List<UNotes>();
Unotes.Add(unotesxx);
这些以红色下划线结束

所以我试过了

for ( int i = 0; i < UNotes.Count; i++)
{
    TNotes.Add(UNotes[i]);
}
for(int i=0;i
同样,添加部分用红色下划线。 我知道有一个简单的原因,这是不起作用的,但由于某些原因,我看不到的
以林换树。LOL

泛型列表是强类型的。您不能将UNotesDB添加到
列表

选项:

  • 为这三个类创建一个通用的“container”类,并将各种类型加载到该container对象中,然后加载到列表中

    public class Note {
       public int SubjectID {get;set;}
       public string Name {get;set;}
    }
    
    //get UNOTE logic here...
    // then add unote to List. Repeat for other types.
    
    var note = new Note() {
       SubjectID = unote.SubjectID,
       Name = unote.Name,
    };
    
    noteList.Add(note);
    
  • 为所有类型创建一个接口,然后创建该接口的列表

  • 为所有类型创建基类型,然后创建该基类型的列表

  • 假设您的数据库类型是由LINQ To SQL或实体框架生成的,那么第一个选项可能是最简单的方法。

    您的意思是编写TNotes.Add(…);您似乎将TNotes用作泛型类型参数名。***和***局部变量名;肯定是后一种错误吗?是的,这是一个输入错误,应该是TNotes.Addd(…)我只想把UNotes和CNotes合并成TNotes。列表是一样的,那么为什么.ADD功能不起作用呢?我完全了解强类型。当我读到这篇文章时,那是因为我没有记住这一点而给我的额头上的一记耳光。谢谢大家
    TNotes.Add(unotesxx);
    TNotes.Add(cnotesxx);
    
    for ( int i = 0; i < UNotes.Count; i++)
    {
        TNotes.Add(UNotes[i]);
    }
    
    public class Note {
       public int SubjectID {get;set;}
       public string Name {get;set;}
    }
    
    //get UNOTE logic here...
    // then add unote to List. Repeat for other types.
    
    var note = new Note() {
       SubjectID = unote.SubjectID,
       Name = unote.Name,
    };
    
    noteList.Add(note);