gpt4 book ai didi

c# - 从字符串中删除重复值

转载 作者:太空宇宙 更新时间:2023-11-03 23:24:13 24 4
gpt4 key购买 nike

我有两个字符串

string s1 = "Apple, Mango, Cherry";
string s2 = "Apple, Mango, Cherry, Pear";

现在我想比较两个字符串并删除重复值和结果应该是

string s3 = "Pear"

怎么做?

我试过:

List<string> list1 = new List<string> {CommonJurisdictions };
List<string> list2 = new List<string> { Jurisdiction };
List<string> ulist = list2.Except(list1).ToList();

但它没有给出预期的结果。

最佳答案

使用 String.Split , Enumerable.Except , ConcatString.Join

string s1 = "Apple, Mango, Cherry";
string s2 = "Apple, Mango, Cherry, Pear";

var s1Token = s1.Split(',').Select(t => t.Trim()).ToArray();
var s2Token = s2.Split(',').Select(t => t.Trim()).ToArray();
var inSecondNotFirst = s1Token.Except(s2Token);
var inFirstNotSecond = s2Token.Except(s1Token);
string s3 = String.Join(", ", inSecondNotFirst.Concat(inFirstNotSecond));

但更有效的 ( O(n) ) 是使用 HashSet<T>它是 SymmetricExceptWith :

 var s1Token = new HashSet<string>(s1.Split(',').Select(t => t.Trim()));
var s2Token = new HashSet<string>(s2.Split(',').Select(t => t.Trim()));
s1Token.SymmetricExceptWith(s2Token);
string s3 = String.Join(", ", s1Token);

关于c# - 从字符串中删除重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34331287/

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