从c#类属性中的字符串返回字符串[]
从SQL Server传入的数据有一个带有管道分隔字符串的字段,即: 20190819 | 20190830 | 20190915 我希望我的类属性返回一个从c#类属性中的字符串返回字符串[],c#,C#,从SQL Server传入的数据有一个带有管道分隔字符串的字段,即: 20190819 | 20190830 | 20190915 我希望我的类属性返回一个字符串[]。我可以使用split手动执行此操作,但我希望我的class属性执行计算和转换 /*使用MyObject,如下所示: /* Use MyObject like below: var b = new MyObject(); b.datesString = "20190819|20190830|2
字符串[]
。我可以使用split手动执行此操作,但我希望我的class属性执行计算和转换 /*使用MyObject,如下所示:
/* Use MyObject like below:
var b = new MyObject();
b.datesString = "20190819|20190830|20190915"; //set datesList to list of strings
var ss = new List<string> { "a", "b" };
b.datesList = ss; //set datesString to 'a|b'
*/
public class MyObject {
public string datesString {get;set;}
public IEnumerable<string> datesList
{
get
{
if(string.IsNullOrEmpty(datesString))
{
return null;// or new empty list
}
return datesString.Split('|');
}
set
{
if(value != null)
{
datesString = "";
foreach(var s in value)
{
datesString += s + "|";
}
datesString = datesString.Substring(0, datesString.Length - 1);
}
}
}
}
var b=新的MyObject();
b、 datesString=“20190819 | 20190830 | 20190915”//将datesList设置为字符串列表
var ss=新列表{“a”,“b”};
b、 datesList=ss//将datesString设置为“a | b”
*/
公共类MyObject{
公共字符串datesString{get;set;}
公共IEnumerable日期列表
{
收到
{
if(string.IsNullOrEmpty(datesString))
{
返回null;//或新的空列表
}
返回日期字符串拆分(“|”);
}
设置
{
if(值!=null)
{
datesString=“”;
foreach(价值中的var s)
{
datesString+=s+“|”;
}
datesString=datesString.Substring(0,datesString.Length-1);
}
}
}
}
创建一个只读属性。属性的get
将调用string.Split
@mjwills虽然这是正确的,但拥有具有副作用的属性是不好的做法-我不是一个粉丝。@DavidG我们必须同意不同意。我认为,一般来说,当人们谈论房地产的副作用时,这并不一定是他们所谈论的那种情况。