我有以下元组:
Tuple <string, string> UHRSCredentals;
UHRSCredentals = new Tuple<string, string>(UserNameLine.Split('\t')[1], PasswordLine.Split('\t')[1]);
如何检查 UHRSCredentals 是否还有除此之外的任何项目?
if (UHRSCredentals.Item1 != "" && UHRSCredentals.Item2 !="")
最佳答案
您可以编写一个简单的扩展方法:
public static class TupleExtensions
{
public static bool HasValue(this Tuple<string, string> tuple)
{
return !string.IsNullOrEmpty(tuple?.Item1) && !string.IsNullOrEmpty(tuple?.Item2);
}
}
var UHRSCredentals = Tuple.Create(UserNameLine.Split('\t')[1], PasswordLine.Split('\t')[1]);
bool hasValue = UHRSCredentals.HasValue(); // True!
但也许您应该考虑一个小类来更清楚地表示和封装您的意图:
class UsernamePasswordPair
{
public string Username { get; private set; }
public string Password { get; private set; }
public bool HasValue { get; private set; }
public static UsernamePasswordPair Create(string usernameLine, string passwordLine)
{
UsernamePasswordPair pair = new UsernamePasswordPair();
pair.Username = usernameLine?.Split('\t')[1];
pair.Password = passwordLine?.Split('\t')[1];
pair.HasValue = !string.IsNullOrEmpty(pair.Username)
&& !string.IsNullOrEmpty(pair.Password);
return pair;
}
}
UsernamePasswordPair p1 = UsernamePasswordPair.Create(UserNameLine, PasswordLine);
bool hasValue = p1.HasValue; // True!
关于c# - 如何检查元组是否有任何项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44109800/