Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中的字符串差异#_C#_String_Character_Difference - Fatal编程技术网

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
而不是
字符串。