0

我正在尝试在两个字符串数组上执行 SQL MINUS 的等效操作。这是我试图复制的代码:

        string returnValue = "";
        foreach (string eachWord in allWords)
        {
            foreach (string ignoreWord in ignoreWords)
            {
                if (eachWord != ignoreWord)
                {
                    returnValue += eachWord;
                }
            }
        }

我想将其重写为:

returnValue = allWords.Minus(ignoreWords);

或同样简洁的东西。我意识到在幕后我会得到相同的代码,但我只是在迂腐!

4

2 回答 2

8
returnValue = allWords.Except(ignoreWords);
于 2012-07-23T19:34:52.887 回答
0

如果您只想拥有字符串而不是IEnumerable<string>,则可以这样做:

var res = allWords.Except(ignoreWords);

接着 ,

StringBuilder sb = new StringBuilder();
       res.ForEach(item => sb.Append(item));
        string ss = sb.ToString();

或者如果你想要一些分隔符,你可以这样做:

string concatenatedStr =  string.Join(",", res.ToArray());
于 2012-07-23T20:06:44.147 回答