【问题标题】:How to get a specific value in C# ListBox如何在 C# ListBox 中获取特定值
【发布时间】:2016-11-30 09:54:45
【问题描述】:

您好,我想获取最后一个方括号 ']' 之后的所有值,所以可以说以下值在我的 ListBox 中

[Database]ColumnName
[Firefox]Browser
[Program]VisualStudio
[SQL]SQLSERVER

我想看看

ColumnName
Browser
VisualStudio
SQLSERVER

我的代码

foreach (var s in ListBox1.Items)
{
    if (s.Equals("]") == true)
    {
        var desc = s.Equals("]");
        ListBox2.items.add(desc)
    }
}

【问题讨论】:

    标签: c# visual-studio filter listbox listboxitem


    【解决方案1】:

    您可以使用SubString 和右括号的索引来获取它后面的内容:

    foreach (var s in ListBox1.Items)
        {
             s = s.ToString();
             var desc = s.SubString(s.LastIndexOf("]") + 1);
             ListBox2.Items.Add(desc);
        }
    

    【讨论】:

    • 因为你使用 Listbox1.items 你不能选择 Substring 你只能选择 tostring, gethascode, equals, gettype
    • 然后使用s.ToString().SubString(...)
    【解决方案2】:

    您可以使用splitlast

     foreach (var s in ListBox1.Items)
     {
          var desc = s.ToString().Split("]").Last();
          ListBox2.Items.Add(desc);
     }
    

    这样,即使你的字符串中没有']',你的代码也不会出错

    【讨论】:

      【解决方案3】:

      如果 foreach 循环变量数据类型是“字符串”,您可以使用 SubString。如果将变量定义为“var”,则必须将“var”转换为“string”。

      试试这个...

      foreach (string item in listBox1.Items)
      {
          listBox2.Items.Add(item.Substring(item.LastIndexOf("]") + 1));
      }
      

      或者

      foreach (var item in listBox1.Items)
      {
          listBox2.Items.Add(item.ToString().Substring(item.ToString().LastIndexOf("]") + 1));
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多