如何通过检查行是否包含某些文本来使字符串获取列表框的特定行的文本?

时间:2013-11-15 21:14:12

标签: c# listbox

有人知道如何在c#中创建一个字符串获取列表框的某个(未选中的)行的文本吗?我试过了(这有项目选择):

string text = listBox1.SelectedItem.ToString();
string[] stringy = text.Split(' ');
MessageBox.Show(stringy[1]);

但这需要选择一个项目。如果有可能,这就是我想要做的事情:

string text = listBox1.GetLine.ThatContainsText("stuff stuff stuff");
string[] stringy = text.Split(' ');
MessageBox.Show(string[1]);

如果有人可以提供帮助,那就太好了。如果你需要我提供其他任何东西,我可以。

5 个答案:

答案 0 :(得分:1)

var textToSearchFor = "stuff stuff stuff";
var text = (from x in listBox1.Items.Cast<string>()
           where x.Contains(textToSearchFor)
           select x)
           .FirstOrDefault(); //maybe even single, depending on your input

答案 1 :(得分:0)

var text = (from x in listBox1.Items.Cast<string>()
            where x.Contains("stuff stuff stuff") 
            select x).FirstOrDefault();
if (!string.IsNullOrEmpty(text))
{
    string[] stringy = text.Split(' ');
    MessageBox.Show(string[1]);
}

答案 2 :(得分:0)

执行类似

的操作
String text = (String)listBox.Items
    .FirstOrDefault(i => ((String)i).Contains("stuff stuff stuff"));

答案 3 :(得分:0)

String text = (String)listBox.Items.Cast<string>()
.FirstOrDefault(i => ((String)i).Contains("stuff stuff stuff") && !i.Equals(listBox.SelectedItem));

抱歉没有格式化的回复,我是通过手机写的。

答案 4 :(得分:0)

如果您想要获得完全匹配,这是一个简单的解决方案。

var text = listBox1.Items.FindByText("stuff stuff stuff");

否则你将不得不使用

var text = (from x in listBox1.Items.Cast<string>()
            where x.Contains("stuff stuff stuff")
            select x).FirstOrDefault();

然后只验证'text'不为空

if (text != null)
{
    string[] stringy = text.ToString().Split(' ');
    MessageBox.Show(stringy[1]);
}