C# 你能得到一根绳子的最大长度吗?分成一行吗?

C# 你能得到一根绳子的最大长度吗?分成一行吗?,c#,string,refactoring,split,C#,String,Refactoring,Split,在下面的代码中,有没有一种方法不需要foreach?所有需要发生的是,如果一个分割的部分超过了一个长度,我可以将其设置为无效 我的同事确信他使用了一行代码,但谷歌没有给我留下任何证据 else if (lineSplit[11].Length > Constant.EstimatedBirthdatesofChildren) { var estimatedBirthdatesofChildren = l

在下面的代码中,有没有一种方法不需要foreach?所有需要发生的是,如果一个分割的部分超过了一个长度,我可以将其设置为无效

我的同事确信他使用了一行代码,但谷歌没有给我留下任何证据

                else if (lineSplit[11].Length > Constant.EstimatedBirthdatesofChildren)
            {
                var estimatedBirthdatesofChildren = lineSplit[11].Split('~');
                foreach (String estimatedBirthdatesofChild in estimatedBirthdatesofChildren)
                {
                    if (estimatedBirthdatesofChild.Length > Constant.EstimatedBirthdatesofChild) valid = false;
                }
            }
哎呀,你的意思是你需要第一个长度超过预期的令牌?你的问题不清楚,但如果是,你可以写

valid = lineSplit[11].Split('~').Any(s => s.Length > Constant.EstimatedBirthdatesofChild)
哎呀,你的意思是你需要第一个长度超过预期的令牌?你的问题不清楚,但如果是,你可以写

valid = lineSplit[11].Split('~').Any(s => s.Length > Constant.EstimatedBirthdatesofChild)

如果使用C>3.5,则可以使用一行:

string valueToSplit = GetMyValue();
var maxLength = 10;


var valid = valueToSplit.Split('~').All((s) => s.Length <= maxLength);

如果使用C>3.5,则可以使用一行:

string valueToSplit = GetMyValue();
var maxLength = 10;


var valid = valueToSplit.Split('~').All((s) => s.Length <= maxLength);

哦,应该是:Maxs=>s.Lengthusing Max将遍历整个集合。相反,use可以使用All,它将在第一个不符合谓词操作的值处停止并返回,应该是:Maxs=>s。Lengthusing Max将迭代整个集合。相反,use可以使用All,它将在不尊重谓词的第一个值处停止并返回。在这个值上,ethere将是Linq答案。请记住,这些方法只是在内部迭代序列的方法,因此可能会讨论它们是否是一行程序。迭代代码仍然存在,但您没有看到它。an.Any会比带中断的foreach更快吗;在里面?此外,由于需要检查97个字段,这将提高伪单行的可读性。这将是Linq的答案。请记住,这些方法只是在内部迭代序列的方法,因此可能会讨论它们是否是一行程序。迭代代码仍然存在,但您没有看到它。an.Any会比带中断的foreach更快吗;在里面?此外,由于需要检查97个字段,使用伪单行将提高可读性。如下所示,使用Max将遍历整个集合。相反,use可以使用All,它将在第一个值处停止并返回不符合以下谓词名称的值,使用Max将遍历整个集合。相反,use可以使用All,它将在不尊重谓词的第一个值处停止并返回