Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查找在列表中创建的姓氏的ID_C#_List - Fatal编程技术网

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