为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 LINQ 从地图中的列表中进行选择?

如何使用 LINQ 从地图中的列表中进行选择?

C#
月关宝盒 2022-11-21 15:48:05
我正在尝试从存储在字典中的列表中选择特定元素。internal Dictionary<string, List<Teamkill>> teamkillCounter = new Dictionary<string, List<Teamkill>>();class Teamkill{    public string killerName;    public string killerSteamId;    public TeamRole killerTeamRole;    public string victimName;    public string victimSteamId;    public TeamRole victimTeamRole;    public DamageType damageType;}// quotedArgs[1] is the killer name being searched for// First attemptList<Teamkill> teamkills = this.plugin.teamkillCounter.Select(x => x.Value.Select(y => y.killerName.Contains(quotedArgs[1])).Cast<List<Teamkill>>()).Cast<List<Teamkill>>().Single();// Second attemptList<Teamkill> teamkills = new List<Teamkill>();teamkills = this.plugin.teamkillCounter.Values.SelectMany(x => x).ToList();teamkills = teamkills.Where(y => y.killerName.Contains(quotedArgs[1])).ToList();理想情况下,它应该返回与杀手姓名匹配的所有 Teamkills 的列表。
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

如果我了解您想要的结果,您可能只需使用Values,SelectManyWhere

var result = teamkillCounter.SelectMany(x => x.Value.Where(y => y.killerName.Contains("bobo")));

Dictionary<TKey,TValue>.Values财产

获取包含 Dictionary 中的值的集合。

Enumerable.SelectMany方法

将序列的每个元素投影到 anIEnumerable<T>并将结果序列展平为一个序列。


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号