我有一个
List<Tuple<string,string>> tr = new List<Tuple<string,string>>();
tr.Add(new Tuple<string, string>("Test","Add");
tr.Add(new Tuple<string, string>("Welcome","Update");
foreach (var lst in tr)
{
if(lst.Contains("Test"))
MessageBox.Show("Value Avail");
}
这样做我失败了,....
答案 0 :(得分:11)
如果你想使用LINQ:
if(tr.Any(t => t.Item1 == "Test" || t.Item2 == "Test"))
MessageBox.Show("Value Avail");
如果多次找到文本(如果符合要求的话),这也有一次只显示消息框的好处。
答案 1 :(得分:5)
可能这应该有效:
foreach (var lst in tr)
{
if (lst.Item1.Equals("Test"))
MessageBox.Show("Value Avail");
}
或者
if (lst.Item1.Equals("Test") || lst.Item2.Equals("Test"))
阅读Tuple Class;您需要通过Item1
和/或Item2
属性访问元组的值。
为什么要使用Tuple?也许这更容易:
Dictionary<string, string> dict = new Dictionary<string, string>
{
{"Test", "Add"},
{"Welcome", "Update"}
};
if (dict.ContainsKey("Test"))
{
MessageBox.Show("Value Avail:\t"+dict["Test"]);
}
答案 2 :(得分:1)
它应该是foreach (var lst in tr)
而不是lstEvntType,你应该测试元组的Item1字段。
答案 3 :(得分:1)
也许这可能会帮助别人。这是我采用的方法:
List<Tuple<string,string>> tr = new List<Tuple<string,string>>();
tr.Add(new Tuple<string, string>("Test","Add");
tr.Add(new Tuple<string, string>("Welcome","Update");
if(lst.Any(c => c.Item1.Contains("Test")))
MessageBox.Show("Value Avail");
(赠送here)
答案 4 :(得分:0)
为什么要迭代lstEvntType而不是tr?你应该试试这个:
List<Tuple<string,string>> tr = new List<Tuple<string,string>>();
tr.Add(new Tuple<string, string>("Test","Add"));
tr.Add(new Tuple<string, string>("Welcome","Update"));
List<Tuple<string,string>> lstEvntType = new List<Tuple<string,string>>();
foreach (var lst in tr)
{
if(lst.Item1.Equals("Test"))
MessageBox.Show("Value Avail");
}
答案 5 :(得分:0)
更改
if(lst.Contains("Test"))
要
if(lst.Item1.Contains("Test") || lst.Item2.Contains("Test"))
如果元组有更多项目,则需要为所有项目添加条件。
如果你想让所有元组都通用,你需要使用Reflection(和the quirky way)。
答案 6 :(得分:0)
List<Tuple<string,string>> tr = new List<Tuple<string,string>>();
tr.Add(new Tuple<string, string>("Test","Add");
tr.Add(new Tuple<string, string>("Welcome","Update");
var index = tr.FindIndex(s=>s.Item1 == "Test" || s.Item2 == "Test");
if(index != -1)
MessageBox.Show("Value Avail");
使用FindIndex,您可以同时检查元素的可用性和索引。