我有<div id="about">
<div class="container">
<div class="row">
<p></p>
<p></p>
<p></p>
</div> <!-- end row -->
<div class="row">
<div class="col-md-4 team">
<h1>Meet The Team</h1>
</div>
</div>
<div class="row">
<div class="col-md-4">
<a href="bios/#.html"><img src="img/team/580x410.jpg" class="img- responsive" alt=""></a>
<h1></h1>
<h3 class="text-muted">Chairman & CEO<br>
Senior Wealth Advisor</h3>
</div>
<div class="col-md-4">
<a href="bios/"><img src="img/team/580x410.jpg" class="img-responsive" alt=""></a>
<h1></h1>
<h3 class="text-muted">President<br>
Senior Wealth Advisor</h3>
</div>
<div class="col-md-4">
<a href="bios/.html"><img src="img/team/580x410.jpg" class="img- responsive" alt=""></a>
<h1></h1>
<h3 class="text-muted">Chief Operating Officer</h3>
</div>
</div> <!-- end row -->
</div> <!-- end container -->
包含列表项目,例如
List<List<int>[]>
我想检查c中包含的任何数组是否有2作为值。这或多或少是一个真实或错误的答案。
到目前为止,我可以使用Linq代码检查a或b是否包含2
List<int> a= new List<int>(){ 2, 2, 3, 4, 5};
List<int> b= new List<int>() { 2, 2, 2, 6 };
List<List<int>[]> c = new List<List<int>[]>();
c.Add(new[]{a,b});
将此扩展到c
var result = a.Any(p=> p==2); // this outputs 2
//上面的代码p =&gt; p.Select(value =&gt; value.Contains(2))返回一个Enumerable,我拿第一个。我不肯定这是使用linq解决这个问题的正确方法。 有没有更好的方法呢?
答案 0 :(得分:7)
如果您知道如何在单个列表中进行搜索,则应该能够以完全相同的方式搜索列表列表。用SelectMany
展平它并使用相同的标准。
对于您的情况,如果这是单个列表:
var result = a.Any(p => p == 2);
然后列出列表:
var result = c.SelectMany(x => x).Any(p => p == 2);
与您的示例中的第三级相似:
var result = c.SelectMany(x => x).SelectMany(x => x).Any(p => p == 2);
答案 1 :(得分:2)
我喜欢PetSerAl的任何任何答案,只需要一点点改变
contents = input()
contents = contents.encode("raw_unicode_escape")
contents = contents.decode("unicode_escape")
答案 2 :(得分:1)
你需要这样的东西:
c.Where(i=>i.Any(x=>x.Contains(2)))
答案 3 :(得分:0)
List<int> a = new List<int>() { 2, 2, 3, 4, 5 };
List<int> b = new List<int>() { 2, 2, 2, 6 };
List<List<int>[]> c = new List<List<int>[]>();
c.Add(new[] { a, b });
//Lambda
bool IsValueExists = c.Any(i => i != null && i.Any(i1 => i1.Any(i2=>i2 == 2)));
//OR
//Linq
bool IsValueExists = (from i in c
from i1 in i
from i2 in i1
where i2 == 2
select i2).Any();
答案 4 :(得分:0)
c.SelectMany(inner=>inner.SelectMany (i =>i )).Contains(2).Dump();