合并重复数据而不影响 LINQ 代码中的其他数据
目标:
如果有重复,则应将其合并为一个,例如,如果“_name: a”, _quantity: 3”和“_name: a”, _quantity: 6”应合并为“_name: a”, _quantity: 9”与其他数据重复或不重复的列表
问题: 我有一个包含大量数据的列表,我不知道如何将重复的数据合并到一个单元中+它不应该影响其他单元。如果可能的话,希望所有事情都发生在同一个列表中,而不创建更多列表来实现结果。
List<Sale> myList = GetAllSalesList()
public classs Sale
{
public string _name;
public string _quantity;
}
Goal:
If any duplicate, it should be merged into one for instance if "_name: a", _quantity: 3" and "_name: a", _quantity: 6" should be merged into "_name: a", _quantity: 9" in the list with other data with duplicate or not.
Problem:
I have a list with lots of data and I don't know how to merge duplicate data into one unit + it should not affect others. If possible, would like everyting to be happened inte same list without creating more list to acheive the result.
List<Sale> myList = GetAllSalesList()
public classs Sale
{
public string _name;
public string _quantity;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
像这样的东西?
编辑:
我刚刚注意到
_quantity
是一个字符串
,对吗?如果是,则使用
Sum()
将代码片段更改为:当然,如果
_quantity
表示int
...否则使用 <代码>双精度或十进制
等...Something like this ?
EDIT:
I've just noticed that
_quantity
is astring
, is that correct ?If it is, change the piece of code using
Sum()
, to:of course if
_quantity
represents anint
... otherwise usedouble
ordecimal
etc...您可以使用分组来完成此操作
。有关分组的更多信息,请参阅第 101 页中的实际示例 - http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx
注意 - 这个答案假设 _quantity 实际上是一个 int 并且整数溢出不是问题
You could do this by using Grouping
For more on grouping, please see the practical examples in the 101 page - http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx
Note - this answer assumes that _quantity is actually an int and that integer overflow is not a concern