C# 如何让字符串通过检查列表框的某一行是否包含特定文本来获取该行的文本?

C# 如何让字符串通过检查列表框的某一行是否包含特定文本来获取该行的文本?,c#,listbox,C#,Listbox,有人知道如何让c中的字符串获取列表框中某个未选中行的文本吗?我已尝试此选项,但已选择: string text = listBox1.SelectedItem.ToString(); string[] stringy = text.Split(' '); MessageBox.Show(stringy[1]); 但这需要选择一个项目。如果可能的话,这就是我想做的: string text = listBox1.GetLine.ThatContainsText("stuff stuff stuf

有人知道如何让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]);
如果有人能帮忙,那就太好了。如果您需要我提供任何其他信息,我可以。

像这样做

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]);
}
String text = (String)listBox.Items
    .FirstOrDefault(i => ((String)i).Contains("stuff stuff stuff"));

很抱歉没有格式化的响应,我是从手机上写的。

这里有一个简单的解决方案,如果你想得到一个精确的匹配

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();

哇,有一个臭名昭著的downvoter正在运行。那么你只是想看看你的列表框是否包含与字符串匹配的列表项,还是想同时选择列表项?这很简单。每个人都忘记了Items返回一个ObjectCollection,您必须调用Cast才能拥有一个IEnumerable来调用LINQ操作;如果要使用LINQ,必须调用Cast。
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();
if (text != null)
{
    string[] stringy = text.ToString().Split(' ');
    MessageBox.Show(stringy[1]);
}