【问题标题】:parsing string for dropdownlist options解析下拉列表选项的字符串
【发布时间】:2016-12-07 07:52:48
【问题描述】:

我有一个字符串 (q.ADDLOption),其值类似于

Select,|IE,IE|Safari,Safari|Chrome,Chrome|     

我想将其解析为下拉列表中的选项

Optionddl oddl = q.ADDLOption.Split('|').ToList<Optionddl>(); <== this is giving error

我也有一门课

public class Optionddl
{
    public string text { get; set; }
    public string value { get; set; }
}

【问题讨论】:

  • 你遇到了什么错误?
  • 你能给我们提供更多代码吗,因为这对你帮助不大,什么是 q ?
  • 使用List&lt;Optionddl&gt; oddl = q.Trim(' ', '|').Split('|').Select(x =&gt; new Optionddl { text = x.Trim().Split(',')[0], value = x.Trim().Split(',')[1] }).ToList();

标签: c# string parsing split html-select


【解决方案1】:

这可能对你有用

List<Optionddl> oddl = q.ADDLOption.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries)
                       .Select(x => new Optionddl
                       {
                           text = x.Split(',')[0],
                           value = x.Split(',')[1]
                       })
                       .ToList<Optionddl>();

代码的第一个问题是q.ADDLOption.Split.ToList 将返回一个列表而不是Optionddl 的对象。其次,我们不能直接将 string[] 数组转换为 List,因为 'string[]' 不包含 'ToList' 的定义,并且最好的扩展方法重载 'System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable )' 有一些无效的参数将是错误。最后,可以选择创建ToListToList&lt;Optionddl&gt;

希望对你有帮助

【讨论】:

    【解决方案2】:

    因为Optionddl 不是可以转换为List 的东西。 考虑一下:

    List<Optionddl> oddl = q.ADDLOption.Split(new string[]{'|'}).ToList<Optionddl>();
    

    【讨论】:

    • 不幸的是,这不能编译。 char 不能隐式转换为 string
    【解决方案3】:

    或者,您可以创建一些隐式/显式运算符:

    public class Optionddl
    {
        public string text { get; set; }
        public string value { get; set; }
    
        public static implicit operator string(Optionddl option)
        {
            return option.text + "," + option.value;
        }
    
        public static implicit operator Optionddl(string str)
        {
            string[] extracted = str.Split(",");
            return new Optionddl { text = extracted[0], value = extracted[1] };
        }
    }
    

    这样你可以做出类似的东西:

    Optionddl meOption = new Optionddl { value = "IE", text = "IE" };
    string meOptionString = meOption; // result of meOptionString = "IE,IE"
    meOption = meOptionString; // result of meOption = { text = "IE", value = "IE" }
    

    【讨论】:

      猜你喜欢
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多