C# LINQ搜索包含具有对象的类的列表

C# LINQ搜索包含具有对象的类的列表,c#,list,linq,class,search,C#,List,Linq,Class,Search,我是C#的新手,我知道如何使用一个字段/类型对列表进行LINQ搜索,但不知道如何使用多种类型的对象。我创建了一个列表 List<Reader> results = new List<Reader>(); 我想用LINQ搜索它,并匹配进入该站点的用户的ID和Name。 如果这两个字段相同,我想从列表中选择用户课程和成绩 有什么建议吗?一个简单的方法,其中用于条件和选择用于表示应该: List<Reader> results = ... var data

我是C#的新手,我知道如何使用一个字段/类型对列表进行LINQ搜索,但不知道如何使用多种类型的对象。我创建了一个列表

List<Reader> results = new List<Reader>();
我想用LINQ搜索它,并匹配进入该站点的用户的
ID
Name
。 如果这两个字段相同,我想从列表中选择用户
课程
成绩


有什么建议吗?

一个简单的
方法,其中
用于条件和
选择
用于表示应该:

 List<Reader> results = ...

 var data = results
   .Where(item => item.ID == userID && item.Name == userName)
// .OrderBy(item => item.Course) // uncomment if you want to order by course
   .Select(item => $"Course: {item.Course} Grade: {item.Grade}");

 foreach (var record in data)
   Console.WriteLine(record);
列出结果=。。。
var数据=结果
.Where(item=>item.ID==userID&&item.Name==userName)
//.OrderBy(item=>item.Course)//如果要按课程排序,请取消注释
.选择(项目=>$“课程:{item.Course}成绩:{item.Grade}”);
foreach(数据中的var记录)
控制台写入线(记录);

首先,假设有两个变量保存用户引入的值。这些变量是string类型的userName和integer类型的id。如果您只需要一个保存课程和成绩的变量,可以选择一个新的匿名类型并执行如下查询:


var值=结果
.Where(item=>item.ID==userID&&item.Name==userName)
.Select(item=>new{Course=item.Course,Grade=item.Grade});
然后可以使用如下值:

values.Grades
价值观。当然

阅读有关LINQ
的内容,其中
选择
 List<Reader> results = ...

 var data = results
   .Where(item => item.ID == userID && item.Name == userName)
// .OrderBy(item => item.Course) // uncomment if you want to order by course
   .Select(item => $"Course: {item.Course} Grade: {item.Grade}");

 foreach (var record in data)
   Console.WriteLine(record);
var Selecteduser = results.Where(x => x.Name == selectedname && x.ID == ID).ToList();
if (Selecteduser.Count != 0)
{
    //found match ..(Selecteduser[0])
    string selectedcourse = Selecteduser[0].Course;
    int selectedgrade = Selecteduser[0].Grade;
}
else
{
   //coudlnt find match
}