我设置了一个解析文件输入信息的类,其中一部分是决定一个人是老人还是退伍老人。这是我从文件中引入的源代码。
public static SalesInfo Parse(string stringValue)
{
string[] words;
SalesInfo person = new SalesInfo();
words = ParseCsvString(stringValue.Trim());
person.ID = Int32.Parse(words[0]);
person.Name = words[1];
person.City = words[2];
person.Senior = words[3]; //this has red underline can't convert string to bool
person.Veteran = words[4]; //this has red underline can't convert string to bool
person.PurDate = Date.Parse(words[5]);
person.ItemPrice = double.Parse(words[6]);
person.Quantity = int.Parse(words[7]);
return person;
}
以下是文件中的一行作为示例。
2546,"Garfield, Janice",Neosho,Y,N,11/23/2016,289.68,4
目前我的高级和退伍军人的财产是空的,如下
public bool Veteran
{
get
{
return this.veteran;
}
set
{
}
}
public bool Senior
{
get { return this.senior; }
set { }
}
我知道我需要发送' Y'或者' N'要通过高级和退伍军人的bool属性进行检查,但我正在努力弄清楚如果可能将char转换为bool并返回true或false以从文件中获取正确的输入。
答案 0 :(得分:1)
其他答案提供了这样的冗余解决方案,您无需检查条件,然后为属性分配相同的相同比较。
你可以简单地说:
person.Senior = words[3] == "Y";
person.Veteran = words[4] == "Y";
这会将比较结果直接分配给布尔属性。
答案 1 :(得分:0)
转换为布尔值。
person.Senior = words [3] .ToLower()==“y”?真假;
答案 2 :(得分:-1)
首先在那里添加一张支票:
SalesInfo person = new SalesInfo();
words = ParseCsvString(stringValue.Trim());
person.ID = Int32.Parse(words[0]);
person.Name = words[1];
person.City = words[2];
string senior = words[3];
if (senior == "Y"){ person.Senior = true; }
else { person.Senior = false; }
然后为退伍军人做同样的事。