C# 查找在列表中创建的姓氏的ID
我有班狮子:C# 查找在列表中创建的姓氏的ID,c#,list,C#,List,我有班狮子: class Lion { public string Name; public string Age; public int ID; } (我知道有更好的方法初始化ID,但这只是一个示例) 我在main上创建了一个5狮(假设有一个接受所有参数的构造函数) 类程序 { 静态void Main(字符串[]参数) { List lions=新列表(); 狮子。添加(新狮子(“Dopi”,5,1)); 添加(新狮子(“Gopi”,5,2)); 添加(新狮子(“Lopi”,5,3));
class Lion {
public string Name;
public string Age;
public int ID;
}
(我知道有更好的方法初始化ID,但这只是一个示例)
我在main上创建了一个5狮(假设有一个接受所有参数的构造函数)
类程序
{
静态void Main(字符串[]参数)
{
List lions=新列表();
狮子。添加(新狮子(“Dopi”,5,1));
添加(新狮子(“Gopi”,5,2));
添加(新狮子(“Lopi”,5,3));
添加(新狮子(“Gopi”,5,4));
狮子。添加(新狮子(“Sopi”,5,5));
}
现在我想找到一只名为“Gopi”的狮子,然后找到它的ID号,但要找到由这个名字创建的最后一只狮子 我怎么才能知道最后一只叫Gopi的狮子的身份 我想在一个单独的变量中初始化他的ID号。您可以直接使用Last()
var gopiId = lions.Last(l => l.Name.Equals("Gopi")).Id;
当您询问“Last”时,您需要定义您想要它的顺序。因此,一旦您对它进行了排序,您就可以使用LINQ语句来投影出您想要的元素,如果您使用LastOrDefault()
您将得到与查询匹配的最后一个元素或null。如果您使用Last()
如果没有与查询匹配的内容,则会出现异常
因此,如果您希望最后一个按Id
lions.OrderBy(l => l.Id).LastOrDefault(x=>
x.Name.Equals("Gopi",StringComparison.CurrentCultureIgnoreCase));
您的代码无法编译。“但请转到由该名称创建的最后一个lion。”在此上下文中,“last”是什么意思?具有最大ID的那一个?您的列表是否总是像示例中那样排序?因为如果不是,如果您只是查找“last”,可能会得到意外的结果
lions.OrderBy(l => l.Id).LastOrDefault(x=>
x.Name.Equals("Gopi",StringComparison.CurrentCultureIgnoreCase));