我的C#代码需要帮助。
我有一个仅包含2个字符字符串的列表。
prefixes.AddRange(new string[] { "oO", "c0", "c1" });
//和其他
我要检查用户输入的值是否以此项目开头(该值是通过文本框输入的)吗?
例如,我想要的结果是验证我的用户是否输入“ 123456789”(不是以列表中的某一项开头),然后在“ 000123456789”之前自动添加“ 000”。
我想我可以用LinQ做到这一点,但是我想知道如何做到这一点。
任何帮助将不胜感激。
答案 0 :(得分:3)
对于每个前缀,您需要检查usersText是否以其开头。下面的代码将对其进行检查,并在您的usersText中添加“ 000”。
if(!prefixes.Any(p => usersText.StartsWith(p))
{
usersText = "000" + usersText;
}
答案 1 :(得分:1)
@piotr所说的话,但是我可能会用一种方法隐藏丑陋的地方。 假设前缀是全局的,则可以执行以下操作:
public string GetPrefix(string s) {
return prefixes.Any(p => s.StartsWith(p))
? "" : "000"
}
,然后使用它。 或者,如果您愿意,甚至可以将其作为对字符串的扩展方法...
public static string GetPrefixForString(this string[] prefixes, string s) {
return prefixes.Any(p => s.StartsWith(p))
? "" : "000"
}
// Usage:
var foo = prefixes.GetPrefixForString(bar);