从c#类属性中的字符串返回字符串[]

从c#类属性中的字符串返回字符串[],c#,C#,从SQL Server传入的数据有一个带有管道分隔字符串的字段,即: 20190819 | 20190830 | 20190915 我希望我的类属性返回一个字符串[]。我可以使用split手动执行此操作,但我希望我的class属性执行计算和转换 /*使用MyObject,如下所示: /* Use MyObject like below: var b = new MyObject(); b.datesString = "20190819|20190830|2

从SQL Server传入的数据有一个带有管道分隔字符串的字段,即:

20190819 | 20190830 | 20190915

我希望我的类属性返回一个
字符串[]
。我可以使用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我们必须同意不同意。我认为,一般来说,当人们谈论房地产的副作用时,这并不一定是他们所谈论的那种情况。