gpt4 book ai didi

c# - 枚举期间的 LINQ 转换

转载 作者:太空宇宙 更新时间:2023-11-03 21:56:13 25 4
gpt4 key购买 nike

我有一个 List<string>

List<string> students;
students.Add("Rob");
students.Add("Schulz");

和一个Dictionary<string,string>

Dictionary<string, string> classes= new Dictionary<string, string>();
classes.Add("Rob", "Chemistry");
classes.Add("Bob", "Math");
classes.Add("Holly", "Physics");
classes.Add("Schulz", "Botany");

我现在的目标是获得一个包含值的列表 - ChemistryBotany - 我正在使用这个

var filteredList = students.Where(k => classes.ContainsKey(k))
.Select(k => new { tag = students[k] });

在尝试枚举值时 - 我能够获得 - tag=Chemistry & tag=Botany ...虽然我只想要 ChemistryBotany .

什么是合适的转换?有没有更好的方法来获得这些值(value)?

最佳答案

你只需要写:

var filteredList = students.Where(student => classes.ContainsKey(student));

在这里,studentstring , 自 studentsList<string> , 所以你只需要申请 Where() .结果将是 IEnumerable<string> .

可以申请ToList()如果你想用尽枚举到另一个 List<string> :

var filteredList = students.Where(student => classes.ContainsKey(student)).ToList();

如果你想要一个类列表(从你问题的代码中看不清楚),那么你必须申请 Select()从学生项目项目:

var filteredList = students.Where(student => classes.ContainsKey(student))
.Select(student => classes[student]);

关于c# - 枚举期间的 LINQ 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12146296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com