C# C Arraylist删除成对的重复值
根据配对从Arraylist中删除副本: 如果您从以下内容开始:C# C Arraylist删除成对的重复值,c#,arraylist,C#,Arraylist,根据配对从Arraylist中删除副本: 如果您从以下内容开始: "Rock" "is" "WWE" "Superstar" "How" "is" "pet" "Rock" "is" "WWE" "Superstar" "How" "is" "pet" 那么输出应该是: "Rock" "is" "WWE" "Superstar" "How" "is" "pet" 只有一个副本删除其他匹配对副本。使用linq linq.Distinct.ToArray基本上,这将删除每一个字符串的每一秒出
"Rock" "is" "WWE" "Superstar" "How" "is" "pet" "Rock" "is" "WWE" "Superstar" "How" "is" "pet"
那么输出应该是:
"Rock" "is" "WWE" "Superstar" "How" "is" "pet"
只有一个副本删除其他匹配对副本。使用linq linq.Distinct.ToArray基本上,这将删除每一个字符串的每一秒出现,我相信这就是您所需要的:
string[] input = new string[]
{
"Rock", "is", "WWE", "Superstar", "Rock", "is", "WWE", "Superstar", "How", "is", "pet", "How", "is", "pet"
};
input.GroupBy(x => x)
.SelectMany(x => x.Skip(x.Count() / 2))
.ToList().ForEach(Console.WriteLine);
这会选择成对的副本吗?因为我的arraylist应该只包含不同的成对值,并且应该删除副本…试试看!启动一个新项目只是为了测试这个建议的效果。学习很有趣。我认为这不是OP想要的;一个简单的不同将返回摇滚,是,WWE,超级明星,如何,宠物。注意,How和pet.Ya之间缺少一个is。但是我的要求是删除成对的重复项,比如说如果Rock is How are按顺序出现两次,那么只保留一个copyrarayList包含元素Rock,is,How,are,Rock,is,How,are。输出应仅选择一个配对副本:Rock,is,How,Are这是否可以是?Rock,is,wwe,wwe,superstar,Rock,is,wwe,wwe,wwe,superstar即使中间有重复的wwe,也应选择一对。选择应仅按配对进行。我尝试使用arraylist,比如:forint I=0;如果有三对或更多的配对,并且arraylist只有摇滚,我该怎么办。。请提供相同的完整表达式。@user1502952是否有一些非常具体的原因阻止您打开Visual Studio并亲自尝试此示例?还是你真的希望我帮你试试?试试看,明确你想改变什么。好的输出是摇滚是WWE超级明星如何宠物。要求是,无论arraylist中有多少个元素成对,都应该删除。假设两个元素匹配一个被删除,三个元素匹配另一个连续的三个元素,被删除。。。