C# C语言中的字符串差异#
我们有两个字符串,C# C语言中的字符串差异#,c#,string,character,difference,C#,String,Character,Difference,我们有两个字符串,stringfirst=“abcdeabcde”和stringsecond=“cdefgcdefg” 第三个字符串只包含第一个字符串中可能的字符,例如string third=“cdecde”,最快/最有效的输入方法是什么 更正式的示例: 第一个字符串包含集合F={a,b,c,d,e} 第二个字符串包含字符S={c,d,e,f,g} 我想知道如何从集合S\(S\F)=S交集F中快速派生第三个字符串 i、 e.字符串second包含字符串交叉处的字符 第二个示例: 字符串w
stringfirst=“abcdeabcde”
和stringsecond=“cdefgcdefg”
第三个字符串只包含第一个字符串中可能的字符,例如string third=“cdecde”
,最快/最有效的输入方法是什么
更正式的示例:
- 第一个字符串包含集合
F={a,b,c,d,e}
- 第二个字符串包含字符
S={c,d,e,f,g}
S\(S\F)=S交集F
中快速派生第三个字符串
i、 e.字符串second
包含字符串交叉处的字符
第二个示例:
- 字符串w=“aaabbccc”
- 字符串z=“bbbcccddd”
- 预期结果:字符串y=“bbbccc”,即第二个字符串,但仅包含第一个字符串中的字符b、c
- string a=“ABCDABCDBABDBC”-来自aplhabet{a,B,C,D}的随机内容
- string b=“CDEDECEDCDE”-字母表{C,D,E}中的随机内容
- 最后一个字符串f=“cddcd”-删除了所有出现的{E}
Intersect
扩展方法返回一个仅包含两个字符串中存在的字符的IEnumerable
,为了将其转换为字符串,方法将连接所有成员并返回结果字符串
编辑
现在,只有交叉点中存在的字符应该保留在字符串中
说明:
Intersect
扩展方法返回一个仅包含两个字符串中存在的字符的IEnumerable
,为了将其转换为字符串,方法将连接所有成员并返回结果字符串
编辑
现在,只有交叉点中存在的字符应该首先保留在字符串中中string.Intersect()
方法应该完全满足您的要求。请参阅更多信息
例如:
var string1 = "abcdefg";
var string2 = "cdekdjdfj";
var intersect = string1.Intersect(string2);
String.Intersect()。请参阅更多信息
例如:
var string1 = "abcdefg";
var string2 = "cdekdjdfj";
var intersect = string1.Intersect(string2);
如果您正在寻找一个简短的解决方案,并且性能不是问题,您可能希望尝试以下方法:
var intersect = first.Intersect(second).ToList();
var result = new String(second.Where(c => intersect.Contains(c)).ToArray());
如果您正在寻找一个简短的解决方案,并且性能不是问题,您可能希望尝试以下方法:
var intersect = first.Intersect(second).ToList();
var result = new String(second.Where(c => intersect.Contains(c)).ToArray());
听起来你在寻找两条线的交点?如果是这样,则可以使用String.Intersect
方法。更具体地说,从不在intersection中的字符串中删除所有字符。String.Except()生成序列的集合差。我补充说S\(S\F)
实际上是S
交叉点F
。我希望交叉点中的字符保留在最后一个字符串中,并删除所有其他字符。因此,S和F交叉点中不存在的任何字符,您希望首先将其从字符串中删除<代码>吗?听起来您在寻找两个字符串的交叉点?如果是这样,则可以使用String.Intersect
方法。更具体地说,从不在intersection中的字符串中删除所有字符。String.Except()生成序列的集合差。我补充说S\(S\F)
实际上是S
交叉点F
。我希望交叉点中的字符保留在最终字符串中,并删除所有其他字符。因此,S和F交叉点中不存在的任何字符,您希望首先将其从字符串中删除
?这只会给出字符的交叉点,结果应为cdecde
。我想使用正则表达式,但那会很慢。这只会给出字符的交集,结果应该是cdecde
。我原以为使用正则表达式,但那会很慢。从技术上讲,没有String.Intersect()
方法。有一个Enumerable.Intersect()
方法可以处理枚举(因此可以将字符串用作字符数组)。但是结果('intersect'在您的示例中)是一个IEnumerable
而不是string
。从技术上讲,没有string.intersect()
方法。有一个Enumerable.Intersect()
方法可以处理枚举(因此可以将字符串用作字符数组)。但是结果('intersect'在您的示例中)是一个IEnumerable
而不是字符串。