我正在进行分配,我定义了以下字典
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对列表进行排序
答案 0 :(得分:1)
如果您想获得由cosineSim排序的fileInfo组合(合并)列表,您可以使用Dmitry的答案。
否则,如果您想在字典中的每个列表中订购商品,可以使用
myDic.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.OrderBy(fi => fi.cosineSim).ToList());
答案 1 :(得分:0)
如果您希望获得按fileInfo
排序的cosineSim
的合并(合并)列表,您可以
List<fileInfo> result = myDic.Values
.SelectMany(item => item) // amalgamating all the lists
.OrderBy(item => item.cosineSim) // ordering the result
.ToList();
如果您想在 myDic
字典中对每个列表进行排序,只需Sort
:
foreach(var list in myDic.Values)
list.Sort(Comparer<fileInfo>.Create((left, right) =>
left.cosineSim.CompareTo(right.cosineSim)));