【发布时间】:2020-10-08 08:39:13
【问题描述】:
假设我有一个物品清单:
TEST1 -- 99,56$ -- 25 PCS -- 10:56
TEST2 -- 56,57$ -- 57 PCS -- 11:01
TEST3 -- 56,57$ -- 43 PCS -- 11:06
TEST4 -- 56,57$ -- 59 PCS -- 11:33
TEST3 -- 56,57$ -- 43 PCS -- 11:06
TEST3 -- 56,57$ -- 43 PCS -- 11:06
TEST1 -- 58,98$ -- 25 PCS -- 11:45
我只想将 NAME 值(NAME 值是 TEST 的第一部分)和 PCS 值相同的重复项放入一个新列表中,因此我想要的新列表输出为:
TEST3 -- 56,57$ -- 43 PCS -- 11:06
TEST1 -- 99,56$ -- 25 PCS -- 10:56
TEST1 -- 58,98$ -- 25 PCS -- 11:45
我的当前代码:
namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click_1(object sender, EventArgs e)
{
List<string> listwithbuys = new List<string>(new string[] {
"TEST1 -- 99,56$ -- 25 PCS -- 10:56",
"TEST2 -- 56,57$ -- 57 PCS -- 11:01",
"TEST3 -- 56,57$ -- 43 PCS -- 11:06",
"TEST4 -- 56,57$ -- 59 PCS -- 11:33",
"TEST3 -- 56,57$ -- 43 PCS -- 11:06",
"TEST3 -- 56,57$ -- 43 PCS -- 11:06",
"TEST1 -- 58,98$ -- 25 PCS -- 11:45" });
List<String> duplicates = listwithbuys.GroupBy(x => x)
.Where(g => g.Count() > 1)
.Select(g => g.Key)
.ToList();
listbox1.DataSource = duplicates;
}
}
}
上面的代码会打印我:
TEST3 -- 56,57$ -- 43 PCS -- 11:06
这不是我的目标,就像我说的那样,我只希望它给我重复的项目,其中 NAME 和 PCS 值是相同的。感谢任何试图提供帮助的人:)
【问题讨论】:
-
名称是哪一列?
-
第一部分,TEST所在的地方
-
看来,你应该拆分你的字符串
-
@HassanBrate 您已经对整个字符串进行了分组。这就是为什么
TEST3是唯一的重复项。完全相同的行在您的源列表中出现了 3 次。 -
如何对字符串的 2 个指定部分进行分组,知道吗?
标签: c# arrays list foreach items