gpt4 book ai didi

c# - 删除列表中包含相同内容的行

转载 作者:行者123 更新时间:2023-11-30 22:35:32 25 4
gpt4 key购买 nike

我有一个包含如下内容的列表:

C12 0402 123456 90
C133 0402 123456 90
C9 0402 123456 90
C132 0603 abcd 0
C54 0603 abcd 0
R FID1 fiducial 0
R FID2 fiducial 0
R FID3 fiducial 0
R FID4 fiducial 0

我想检查列表中的每一行并确保没有添加重复项...我试过了,但我知道这里存在逻辑错误。

List<string> noDuplicatesList = new List<string>();

foreach (var line in theList)
{
if (!noDuplicatesList.Contains(line.PartNumber)) //This is doing nothing...?
noDuplicatesList.Add(line.Name + " " + line.PartDescription + " " line.PartNumber + " " + line.Rotation);
}

foreach (var line in noDuplicatesList)
{
var splitLine = line.Split(' ');
//Print out statements...
}

问题

如何删除/跳过包含相同值的行(在上面的示例中 123456abcdfiducial),以便它只会打印这样的东西:

C12 0402 123456 90
C132 0603 abcd 0
R FID1 fiducial 0

最佳答案

是否只用第3列作为分组条件?

var noDuplicatesList = lines
.GroupBy(l => l.PartNumber)
.Select(group => group.First())

foreach(var item in noDuplicatesList)
Console.WriteLine("{0} {1} {2} {3}",
item.Name,
item.PartDescription,
item.PartNumber,
item.Rotation
);

行:

C12 0402 123456 90
C133 0402 123456 90
C9 0402 123456 90
C132 0603 abcd 0
C54 0603 abcd 0
R FID1 fiducial 0
R FID2 fiducial 0
R FID3 fiducial 0
R FID4 fiducial 0

lines.GroupBy(l => l.PartNumber):

{ C12 0402 123456 90, C133 0402 123456 90, C9 0402 123456 90}
{ C132 0603 abcd 0, C54 0603 abcd 0 }
{ R FID1 fiducial 0, R FID2 fiducial 0, R FID3 fiducial 0, R FID4 fiducial 0 }

lines.GroupBy(l => l.PartNumber).Select(group => group.First()):

C12 0402 123456 90
C132 0603 abcd 0
R FID1 fiducial 0

关于c# - 删除列表中包含相同内容的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7409316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com