我该怎么转弯.有没有进入for循环

本文关键字:for 循环 有没有 转弯 | 更新日期: 2023-09-27 18:01:04

我在将以下代码转换为for循环时遇到了一些问题。代码的目的是检查字符串中是否同时包含字母和数字

else if (!string.Any(Char.IsLetter) || !string.Any(Char.IsDigit))
{
    return false;
}

有什么想法吗?

我该怎么转弯.有没有进入for循环

你的意思是这样的吗?

bool anyLetter = false;
bool anyDigit = false;
foreach(var ch in str)
{
    if(char.IsLetter(ch)) anyLetter = true;
    if(char.IsDigit(ch)) anyDigit = true;
    if(anyLetter && anyDigit) break;
}
return anyLetter || anyDigit;

请注意,如果此字符串应至少包含一位一个字母,则需要使用&&而不是||

由于Selman22似乎已经回答了这个问题,我发现的另一个解决方案是,我想你也可以使用RegEx:

letterCount = Regex.Matches(yourstring,@"[a-zA-Z]").Count;
numberCount = Regex.Matches(yourstring,@"'d").Count;
return letterCount != 0 && numberCount != 0;

你是指一组字符串的循环吗?

var src = new List<string>{"A4C", "D3F", "G7I"};
var allHaveCharAndDigit = src.TrueForAll(s => s.Any(c => char.IsLetter(c)) && s.Any(c => char.IsDigit(c)));