c# - C# 从列表中获取数据

标签 c# list class

我已经创建了一个类列表。在这里你可以看到代码:

public class People{
        public string name;
        public int age;     
    }   

public List<People> peopleInfo = new List<People>();

我的问题是我有一个名字,现在我想知道年龄。我如何获得这些数据? 我可以通过以下方式获得特定职位的姓名或年龄:

int pos = peopleInfo[0].name;

但是我怎样才能以倒置的方式做到这一点并获得名称的位置呢?当我拥有它时,很容易变老。

最佳答案

您可以使用 FindIndex方法:

var searchForName = "John";
int index = peopleInfo.FindIndex(p => p.name == searchForName);

这将返回列表中第一个 name 属性等于 "John" 的人的索引。当然,可能有很多名为 “John” 的人,您可能希望找到所有这些人。为此,您可以使用 LINQ:

IEnumerable<int> indexes = peopleInfo.Select((p, i) => new { p, i })
                                     .Where(x => x.p.name == searchForName)
                                     .Select(x => x.i);
foreach(int i in indexes)
{
    peopleInfo[i].age ...
}

但如果您真的不需要索引,这简单得多:

foreach(People person in peopleInfo.Where(p => p.name == searchForName))
{
    person.age ...
}

关于c# - C# 从列表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17350727/

相关文章:

c++ - 如何完全减少/简化分数 (C++)

c# - 在 .NET 中使用 key 的独占锁

c# - 调整大数组的大小

c# - 从代码隐藏访问 javascript 动态属性

Python:程序在资源管理器中打开不正确的文件路径?

python - 在 Python 中创建列表对象类

c# - monodroid 中的 DataAnnotations

list - Markdown 中的单独列表

java - 在Java中将两个字符串 append 到数组中的一个索引

java - 具有类型安全类参数的通用(非静态)方法,它是如何工作的?