字典值中的排序列表[重复]
Posted
技术标签:
【中文标题】字典值中的排序列表[重复]【英文标题】:Sort List in Dictionary's Value [duplicate] 【发布时间】:2015-04-01 02:17:22 【问题描述】:我正在处理我定义以下字典的任务
Dictionary<string, List<fileInfo>> myDic = new Dictionary<string, List<fileInfo>>();
在哪里
public class fileInfo
public string fileFullName;
public double tf;
public double idf;
public double tf_idf;
public double cosineSim;
public fileInfo()
fileFullName = null;
tf = 0.0;
idf = 0.0;
tf_idf = 0.0;
cosineSim = 0.0;
现在我想根据 COSINESIM 对列表进行排序
【问题讨论】:
那么做吧,谷歌搜索将比在 SO 上提问花费更少的时间。相关的第一篇文章正是您想要的。 您尝试过的任何代码? 我全心全意地帮助别人......但是哦,天哪,你表现出完全没有任何努力来解决你的家庭作业。 【参考方案1】:如果您想获得按 cosineSim 排序的 fileInfo 的组合(合并)列表,您可以使用 Dmitry 的答案。
如果您想对字典中每个列表中的项目进行排序,您可以使用
myDic.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.OrderBy(fi => fi.cosineSim).ToList());
【讨论】:
【参考方案2】:如果您想获得按cosineSim
排序的fileInfo
的组合(合并)列表,您可以这样做
List<fileInfo> result = myDic.Values
.SelectMany(item => item) // amalgamating all the lists
.OrderBy(item => item.cosineSim) // ordering the result
.ToList();
如果您想对 每个 列表 within myDic
字典进行排序,只需 Sort
他们:
foreach(var list in myDic.Values)
list.Sort(Comparer<fileInfo>.Create((left, right) =>
left.cosineSim.CompareTo(right.cosineSim)));
【讨论】:
我真的非常感谢“我的老师”:我在最后一个连接 5 到 6 小时内一直在努力,但一切都是徒劳的......你真的解决了我的问题以上是关于字典值中的排序列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章