小编D4C*_*D4C的帖子

我有正则表达式将字符串拆分为单词,数字和标点符号列表.如何制作列表中的"az"和"0-9"单个元素?

它看起来如此:

string[] lines = Regex.Split(line, @"\s+|(?!^)(?=\p{P})|(?<=\p{P})(?!$)");
Run Code Online (Sandbox Code Playgroud)

它分裂"ASds22d. asd ,156""ASds22d" + "." + "asd" + "," + "156".

这是"az","0-9"等字符串或"ac"和"4-5"等变体的问题.我的正则表达式分裂"a-z 1-9","a" + "-" + "z" + "1" + "-" + "9"但我需要"a-z" + "1-9".

有人能解决这个正则表达式吗?

c# regex

5
推荐指数
1
解决办法
128
查看次数

如果在此循环中更改迭代集合,如何使用foreach?

我有收藏:

public class myList : List<myClass> { }
Run Code Online (Sandbox Code Playgroud)

并做:

foreach (myClass obj in myList) {
    //...
    if (some_condition) {
        myList.Add(newObj); }
    //...
}
Run Code Online (Sandbox Code Playgroud)

所以在2次迭代之前,我得到的错误如下:collection was changed.显然问题在于myList.Add(newObj);.

我如何组织这个循环以避免错误?请记住:我可以添加一些元素列表但永远不会删除.

我可以使用for循环与迭代器.但在这种情况下,我的代码看起来会更糟糕.也许这是一个更好的解决方案?

c# foreach

-2
推荐指数
1
解决办法
217
查看次数

标签 统计

c# ×2

foreach ×1

regex ×1