【发布时间】:2017-10-29 17:04:20
【问题描述】:
这些是我想要级联拆分字符串的值
List<string> lstsplitWord = new List<string> { ",", "=", "،", "أو", "او", "/", "." };
我已经把它们写成这样,但我假设必须有更优雅的 Linq 解决方案来解决这个问题
foreach(var part1 in srSplitPart.Split(',')) {
foreach(var part2 in part1.Split('=')) {
foreach(var part3 in part2.Split('،')) {
foreach(var part4 in part3.func_Split_By_String("أو")) {
foreach(var part5 in part4.func_Split_By_String("او")) {
foreach(var part6 in part5.Split('/')) {
foreach(var part7 in part6.Split('.')) {
if (part7.Length < 3)
continue;
string srTrans = part7.FixArabic().func_Special_Trim();
srTemp.AppendLine($ "{srTitle} > {srTrans} \t {irTransLevel}");
irTransLevel++;
}
}
}
}
}
}
}
C# .net 4.6.2
特殊分割功能
public static List<string> func_Split_By_String(this string Sentence, string srReplace)
{
return Sentence.Split(new string[] { srReplace }, StringSplitOptions.None).ToList();
}
【问题讨论】:
-
这太嵌套了,我什至看不出你在这里尝试什么
-
Split() 重载还不够吗?只需通过 lstsplitWord。 .Split(lstsplitWord)
标签: c# .net linq foreach split