布尔结果属性c#

时间:2016-12-06 18:45:34

标签: c# boolean

我设置了一个解析文件输入信息的类,其中一部分是决定一个人是老人还是退伍老人。这是我从文件中引入的源代码。

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以从文件中获取正确的输入。

3 个答案:

答案 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; }

然后为退伍军人做同样的事。