C#中lsitView如何搜索某个子项

---恢复内容开始---

在winform开发中经常会使用listView控件,如果要查询subitem子项有几种方式呢?

1.使用循环遍历方式:(2.0)

/// <summary>
/// 查找listview中特定列所包含的指定值所在的index
/// </summary>
/// <param name="view">要查找的listview控件</param>
/// <param name="name">指定的列name</param>
/// <param name="val">要查找的值</param>
/// <returns>查找到的值,-1为没查到</returns>
public int getListViewId(ListView view, string name, string val)
{
	for (int i = 0; i < view.Items.Count; i++)
	{
		if (view.Items[i].SubItems[name].Text == val)
			return i;
	}
	return -1;
}

2.使用linq(3.5+)

在net framework新版本中可以使用linq查询,几大的简化了代码量,提升了可读性.

ListViewItem li = ListViewUser.Items.Cast<ListViewItem>().First(x => x.Text == "1005" && x.SubItems["city"].Text == "北京");
string val = li.SubItems["city"].Text;

其他方法还没找到,做个记录,备忘

---恢复内容结束---

原文地址:https://www.cnblogs.com/summary/p/4526671.html