亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將一個值與排序字典中的下一個值進行比較

將一個值與排序字典中的下一個值進行比較

C#
慕勒3428872 2022-01-09 14:54:54
我有一個排序字典,名稱為鍵,標記為值。Dictionary<string,int> diM = new Dictionary<string,int>();另一個字典來存儲各個學生所花費的時間。Dictionary<string,int> diT = new Dictionary<string,int>();現在,如果兩個學生的分數相同,則根據所用時間排名。var marks = from pair in diM            orderby pair.Value descending            select pair;int j=0;foreach (KeyValuePair<string, int> pair in marks){    j++;    Console.WriteLine("{0} {1}",j, pair.Key);}現在,如果一個學生的分數與下一個學生的分數相等(如排序字典),那么應該輸出時間更少的學生。
查看完整描述

1 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

首先,我建議不要使用字典來完成這項任務。創建一個具有名稱、標記和時間屬性的類。就像是:


public class TestResult

{

    public string Name { get; set; }

    public int Grade { get; set; }

    public TimeSpan Time { get; set; }

}

然后持有該類型的列表。每當您有兩個單獨的集合時,您需要以某種方式保持同步 - 懷疑設計中可能存在問題。


至于實際問題,使用Linq將兩個字典按鍵連接起來。完成此操作后,您可以按標記排序結果,然后按時間排序:


var result = from mark in diM

             join time in diT on mark.Key equals time.Key

             orderby mark.Value descending, time.Value

             select new { Name = mark.Key, Grade = mark.Value, Time = time.Value };


查看完整回答
反對 回復 2022-01-09
  • 1 回答
  • 0 關注
  • 135 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號