私はこのようなクラスを持っています:
public class UserDataPoint
{
public string User { get; set; }
public string Category { get; set; }
public int Spend { get; set; }
public UserDataPoint(string strUser, string strCategory, int intSpend)
{
User = strUser;
Category = strCategory;
Spend = intSpend;
}
}
次のようなデータが入力されています。
var myList = new List<UserDataPoint>() {
new UserDataPoint("Bob", "Local", 34),
new UserDataPoint("Bob", "National", 16),
new UserDataPoint("Bob", "Mobile", 7),
new UserDataPoint("John", "Local", 18),
new UserDataPoint("Fred", "National", 22),
new UserDataPoint("Fred", "International", 65) };
配列にデータを入力したい:
UserDataPoint[] myArray;
myList からのデータを使用しますが、合計「支出」が最も高い「ユーザー」順に並べ替えます。したがって、上記の例のデータから、Fred がリストの最初 (22 + 65 = 87)、次に Bob (34 + 16 + 7 = 57)、そして最後に John (18) になります。
したがって、結果の配列は次の順序で入力されます。
UserDataPoint[] myArray = new UserDataPoint[] {
new UserDataPoint("Fred", "National", 22),
new UserDataPoint("Fred", "International", 65),
new UserDataPoint("Bob", "Local", 34),
new UserDataPoint("Bob", "National", 16),
new UserDataPoint("Bob", "Mobile", 7),
new UserDataPoint("John", "Local", 18) };
myList でこの順序付けを実行して myArray を取得する LINQ ステートメントを実装するにはどうすればよいですか?
助けてくれる人に感謝します。