内の項目を繰り返して、私は次のように絵を持っている:ソート列の値と最大値を返すには、リスト
私は怒鳴るなどの2つのタスクやりたい:
最初のものを:合計TOTAL列の値を最小値から最大値にソートする
2番目の値:レコードを選択して(例:4レコード)、mリスト内で繰り返されるaxアイテム
ここで私のコードは動作しません。
private void Form1_Load(object sender, EventArgs e)
{
customersBindingSource.DataSource = new List<Customers>();
}
private void btnGet_Click(object sender, EventArgs e)
{
int k;
string temp;
//Step 1: Sort values smallest to largest on TOTAL column
DataTable dt = new DataTable();
DataView dv = new DataView();
dv = dt.DefaultView;
dv.Sort = dv.Table.Columns[3].ColumnName + "ASC";
dt = dv.Table;
//Step 2: Input k rows & return max repeated items in list of Column 1 (BOOK_NAME)
k = Convert.ToInt32(txtkvalue.Text);
for (int i = 0; i < k; i++)
{
temp = dataGridView.Rows[i].Cells[1].Value.ToString();
List<string> prod = new List<string>();
prod.Add(temp);
var grouped = prod.ToLookup(x => x);
var maxRepetitions = grouped.Max(x => x.Count());
var maxRepeatedItems = grouped.Where(x => x.Count() == maxRepetitions)
.Select(x => x.Key).ToList();
//MessageBox.Show(maxRepeatedItems.ToString());
}
}
期待結果(K = 4):
- ソート(TOTALカラム):150、200、200、250、300
- 戻り予約名:ブック2(リスト:予約1、Book 2、Book 2、Book 3)
私に助言してください。 ありがとうございます。
@イサク私は私の答えをちょっと編集しました。期待しています。 –
@ PavelPhjaHalbich:助けてくれてありがとうございますが、実行してメッセージを表示することはできません:var ordered = baseList.OrderBy(e => e.Total); - > System.ArgumentNullException: '値はnullにはできません。' – Issac
コードをコピーして実行するだけの場合は、そのエラーが発生します。最初の行に何が表示されていますか? 'baseList'は初期化されていますが、あなたのデータソースからデータを収集する必要があるというコメントがあります。現在のフォームではコンパイルできますが、例外なく実行されるわけではありません。ここでSO人は方向を修正するようにあなたを導くでしょうが、誰もあなたのためにあなたの仕事をしません。 –