1
返回最多重复的项目我的图片如下:排序值,并在列表
我愿做两个工作波纹管:
第一种:将TOTAL列中的值从最小到最大排序
第二个:输入需要选择的记录数(例如:4条记录)并返回m它在列表中重复的斧头项目
在这里我的代码,但它是行不通的。
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)
请帮我指教。 非常感谢。
@Isaac我编辑了我的答案一点点,所以你打开背后的东西。希望这是可以理解的 –
@PavelPájaHalbich:感谢您的建议,但它也无法运行并显示消息:var ordered = baseList.OrderBy(e => e.Total); - > System.ArgumentNullException:'值不能为空。' – Issac
如果你只是简单地复制代码并运行它,那么是的,你会得到那个错误。你看到第一行是什么吗?虽然'baseList'被初始化,但有一条评论说你*需要实现从你的数据源收集数据。在目前的形式中,你可以编译它,但它不会毫无例外地运行。在这里,人们会引导你正确的方向,但没有人会为你做你的工作。 –