【发布时间】:2019-05-17 18:02:10
【问题描述】:
我是集合和 linq 的新手,想知道在列表中搜索执行 O(n) 操作的这部分代码的更好方法是什么,其中 n 是计数。不想要 O(n) 而不是 O(1) (MapList.Find())。
如果有更好的解决方案,我愿意接受建议甚至更改它。
List<Mapp> MapList = dtResults.AsEnumerable().Select(r => new Mapp()
{
Key = (int)r["Key"],
AlternateId = (string)r["AlternateId"],
}).ToList();
oValueRow["Key"] = MapList.Find(x => x.AlternateId ==
Names.ElementAt(n).ToString()).Key;
有没有办法让它变得更好,MapList 可以找到做 O(1) 操作而不是 O(N) 的操作。我不能在 maplist 上做 Elementat (n),因为我只需要 x = alternateId 的元素。
【问题讨论】: