Vb.net 如何从DataTable中选择仅由一列区分的所有记录
我有一个这样的数据表Vb.net 如何从DataTable中选择仅由一列区分的所有记录,vb.net,linq,Vb.net,Linq,我有一个这样的数据表 invoice_number invoice_date customer_name item_name 1 14/01/2019 Mr.A Item1 2 15/01/2019 Mr.B Item1 3 15/01/2019 Mr.C Item2 1
invoice_number invoice_date customer_name item_name
1 14/01/2019 Mr.A Item1
2 15/01/2019 Mr.B Item1
3 15/01/2019 Mr.C Item2
1 15/01/2019 Mr.A Item2
2 20/01/2019 Mr.B Item5
我想要什么
我想将除“item\u name”之外的所有列插入ListView。我的标准是“发票号码”必须是唯一的。其他列中的数据类型无关紧要。在ListView中应该是这样的。基本上,抓住第一个事件,忽略其余的
invoice_number invoice_date customer_name
1 14/01/2019 Mr.A
2 15/01/2019 Mr.B
3 15/01/2019 Mr.C
到目前为止我都试过了
其工作正常,但由于日期重复,发票编号1和2在ListView中出现两次。我该怎么办?我的Linq知识非常有限。除了将数据放入多维数组、运行嵌套循环并删除重复条目之外,我想不出任何其他方法 请看我在您的问题下的评论。如果我理解正确,那么我认为这就是你想要的:
var inv_selected_date = temp.GroupBy(i => i.invoice_number).Select(iv => iv.First()).ToList();
见我在你的问题下的评论。如果我理解正确,那么我认为这就是你想要的:
var inv_selected_date = temp.GroupBy(i => i.invoice_number).Select(iv => iv.First()).ToList();
只是为了确保我能理解。。。仅允许发票编号的第一个实例。如果在第一个实例之后有任何重复项,则将忽略这些行。是吗?是的,你是对的,只是为了确保我明白。。。仅允许发票编号的第一个实例。如果在第一个实例之后有任何重复项,则将忽略这些行。是吗?是的,你是对的,它不是只得到发票号码列吗?如前所述,我需要所有3列。我已将其转换为VB,并在I.invoice\u number-Dim inv\u selected\u date=temp.groupbyfunction I.invoice\u number处显示错误。[选择]Functioniv.First.ToListI对我先前的评论表示歉意。它工作得很好。一个小的修正不是发票号而是库存号。谢谢你帮我。它不是只有发票号码栏吗?如前所述,我需要所有3列。我已将其转换为VB,并在I.invoice\u number-Dim inv\u selected\u date=temp.groupbyfunction I.invoice\u number处显示错误。[选择]Functioniv.First.ToListI对我先前的评论表示歉意。它工作得很好。一个小的修正不是发票号而是库存号。谢谢你帮助我。