2014-09-20 36 views
0

我使用C#語言在asp.net中創建一個網站。計算類似ID的分數的總和

我有9個列表。每個列表都有2列:帶有int類型的ID和帶有int16類型的值。 ID是唯一的。

  1. 我想用特殊公式計算每個列表中每個ID的分數。舉例來說,你覺得這是計算所有得分後的結果:

ID,表號,價值,得分

100,1,2,10

300,1,2,9

200,1,4,11

100,2,3,10.5

200,2,3 ,10

...

  • 我想要計算每個ID的分數的總和。我的意思是,在我的例子中,身份證號碼100的最終分數是:10 + 10.5 + ....
  • 你對我的建議是什麼?我的第一階段的想法是創建一個列表和商店編號,列表名稱,值和分數(如上表),但我不知道如何做第二階段。

    我將不勝感激如果你善意幫助我。 非常感謝

    +0

    向我們展示您的代碼,以及您到目前爲止所嘗試的內容。與此說,我會建議使用'System.Linq',將使你的生活更容易。 – Banana 2014-09-20 13:56:43

    +0

    這將有助於看到一些輸入示例以及每個輸入的預期輸出。 – 2014-09-20 14:13:12

    +0

    我正在寫一個包含500多行的算法,並且我使用了不同的函數和類。所以,它需要你的時間來通過它們。我試圖以最好的方式解釋我想在這部分做什麼。我知道這不是很清楚,但我無法以更好的方式解釋。如果您能幫助我,我將不勝感激。你能解釋一下如何使用linq來達到這個目的嗎? – 2014-09-20 14:27:01

    回答

    0

    我已經爲您的要求實現了控制檯應用程序代碼。 這是工作代碼。

    首先它通過ID進行分組,然後總結每個ID組中的得分ID 最終結果是ID &的字典對此ID的得分總和。

    using System; 
    using System.Linq; 
    
    namespace ConsoleApplication1 
    { 
        class Program 
        { 
         static void Main(string[] args) 
         { 
          var records = new[] { 
               new Records{ID=100,ListNum=1,Value=2,Score=10}, 
               new Records{ID=300,ListNum=1,Value=2,Score=9}, 
               new Records{ID=200,ListNum=1,Value=4,Score=11}, 
               new Records{ID=100,ListNum=2,Value=3,Score=10.5}, 
               new Records{ID=200,ListNum=2,Value=3,Score=10} 
               }; 
          var idScoreSumDictionary = records 
              .GroupBy(rec => rec.ID) 
              .ToDictionary(
               rec => rec.Key, 
               rec => rec.Sum(x => x.Score) 
              ); 
          foreach (var item in idScoreSumDictionary) 
          { 
           Console.WriteLine("ID: {0}",item.Key); 
           Console.WriteLine("Its Score Sum: {0}",item.Value); 
          } 
         } 
        } 
    
        class Records 
        { 
         public int ID { get; set; } 
         public int ListNum { get; set; } 
         public int Value { get; set; } 
         public double Score { get; set; } 
        } 
    } 
    
    +0

    感謝您的回答。它真的幫助了我。 我正在處理你說的話。我得到的結果,直到你說,但現在,我想要使用這些數字,我的意思是我想要使用這些ID和數組中的每個ID的總和,例如,爲下一階段。我無法做到這一點。 我不知道如何使用idScoreSumDictionary中的數據。你能幫我解決這個問題嗎? 最好的問候。 – 2014-09-22 14:00:11

    +0

    謝謝。最後,我可以在很多次嘗試後解決它。 – 2014-09-22 17:11:54

    +0

    我沒有理解短語「我的意思是我想要使用這些id和數組中的每個id的總和」,我已經編輯了我的答案,希望它會有所幫助。 – vikas 2014-09-23 15:46:32