static void Main(string[] args) { string[] aa = new string[] { "abc", "kkk", "ttt", "mmm", "zzz", "bbb" }; string[] bb = new string[] { "xyz", "abc", "ttt", "mmm", "jkl" }; foreach (string s in Fuck(aa,bb)) Console.WriteLine(s); Console.ReadLine(); }static IEnumerable<string> Fuck(string[] aa, string[] bb) { foreach (var s in aa.Concat(bb)) { if (aa.Contains(s) && bb.Contains(s)) { continue; //如果aa,bb都包含就pass } else { yield return s; } } }
当然Fuck也可以简化成:static IEnumerable<string> Fuck(string[] aa, string[] bb) { foreach (var s in aa.Concat(bb)) if (!(aa.Contains(s) && bb.Contains(s))) yield return s; }
或者string[] aa = new string[] { "abc", "kkk", "ttt", "mmm", "zzz", "bbb" }; string[] bb = new string[] { "xyz", "abc", "ttt", "mmm", "jkl" };var x = from s in aa.Concat(bb) where (!(aa.Contains(s) && bb.Contains(s))) select s;foreach (var s in x) Console.WriteLine(s);
static void Main(string[] args)
{
string[] aa = new string[] { "abc", "kkk", "ttt", "mmm", "zzz", "bbb" };
string[] bb = new string[] { "xyz", "abc", "ttt", "mmm", "jkl" }; foreach (string s in Fuck(aa,bb))
Console.WriteLine(s);
Console.ReadLine();
}static IEnumerable<string> Fuck(string[] aa, string[] bb)
{
foreach (var s in aa.Concat(bb))
{
if (aa.Contains(s) && bb.Contains(s))
{
continue; //如果aa,bb都包含就pass
}
else
{
yield return s;
} }
}
{
foreach (var s in aa.Concat(bb))
if (!(aa.Contains(s) && bb.Contains(s)))
yield return s;
}
string[] bb = new string[] { "xyz", "abc", "ttt", "mmm", "jkl" };var x = from s in aa.Concat(bb)
where (!(aa.Contains(s) && bb.Contains(s)))
select s;foreach (var s in x)
Console.WriteLine(s);