我有两个字符串,我需要检查它们是否具有相似的值但不相同。最后一个字符串应该包含所有缺少的部分,因此string1的部分不包含在string2的部分中(完全或作为子字符串)。怎么做?
例如:
string first = "aaa/bbb/cccc/dddd";
string second "bbbb/cccc";
第三个字符串应为
aaa/dddd
答案 0 :(得分:1)
所以你实际上想要按/
拆分并获取不在第二个字符串中的所有令牌?
string first = "aaa/bbb/cccc/dddd";
string[] firstParts = first.Split('/');
string second = "bbbb/cccc";
string[] secondParts = second.Split('/');
var missing = firstParts.Where(t1 => !secondParts.Any(t2 => t2.Contains(t1)));
string third = string.Join("/", missing);
结果是"aaa/dddd"
,这并不完全符合您的预期。你能澄清一下你期望"aaaa/dddd"
的原因吗?