小编dea*_*_Y7的帖子

最有效的方法来比较两个列表并删除相同的

我想比较两个列表并将有效的单词放入新列表中.

var words = new List<string>();
var badWords = new List<string>();

//this is just an example list. actual list does contain 700 records
words.Add("Apple");
words.Add("Moron");
words.Add("Seafood");
words.Add("Cars");
words.Add("Chicken");
words.Add("Twat");
words.Add("Watch");
words.Add("Android");
words.Add("c-sharp");
words.Add("Fool");

badWords.Add("Idiot");
badWords.Add("Retarded");
badWords.Add("Twat");
badWords.Add("Fool");
badWords.Add("Moron");
Run Code Online (Sandbox Code Playgroud)

我正在寻找最有效的方法来比较列表并将所有"好"的单词放入新的列表中.finalList不应包含"Moron","Twat"和"Fool".

var finalList = new List<string>();
Run Code Online (Sandbox Code Playgroud)

或者是否没有必要创建新的列表?我很高兴听到你的想法!

先感谢您

c# compare list .net-4.5

4
推荐指数
2
解决办法
1333
查看次数

检查字符串中是否包含大写字母

我目前正在学习C#和RegEx.我正在研究一个小的wordcrawler.我得到了许多单词的大清单,我可以逃避那些不适合我的RegEx的单词.

这是我的代码:

var WordRegex = new Regex("^[a-zA-Z]{4,}$", RegexOptions.Compiled | RegexOptions.CultureInvariant);
var secondRegex = new Regex("([A-Z]{1})");

var words = new List<string>();
var finalList = new List<string>();

foreach (var word in words)
{
    if (WordRegex.IsMatch(word) && secondRegex.Matches(word).Count == 1 || secondRegex.Matches(word).Count == 0)
    {
         finalList.Add(word);
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,如果单词是'McLaren'(两个大写字母),它将无法将其添加到finalList.但是如果这些单词类似于'stackOverflow'(一个大写字母但不是字符串的开头),它确实会把它作为finallist.有没有简单的方法来防止这个问题?

PS:如果有比RegEx更好的方式让我知道!

这里有些例子:

("McLaren");//false
("Nissan");//true
("BMW");//false
("Subaru");//true
("Maserati");//true
("Mercedes Benz");//false
("Volkswagen");//true
("audi");//true
("Alfa Romeo");//false
("rollsRoyce");//false
("drive");//true
Run Code Online (Sandbox Code Playgroud)

这些都是真的应该被接受而另一个不应该被接受.

我想要达到的是正则表达式不应该在它写成'rollsRoyce'时添加,但如果它写成'Rollsroyce'或'RollsRoyce'则应该被接受.所以我必须检查字符串中是否有大写字母.

c# regex list match .net-4.5

0
推荐指数
1
解决办法
1688
查看次数

标签 统计

.net-4.5 ×2

c# ×2

list ×2

compare ×1

match ×1

regex ×1