![](/img/trans.png)
[英]get list from xml using linq based on true if there is no true then select false condition tag element in c#
[英]Find value of list<object> that cause to make true condition using C# and linq
我有一個名字是對象的列表ObjectA
和對象名稱的另一個列表是ObjectB
,如:
var result = objectA.any(x=> objectB.contain(x.item));
現在我的問題是:如果我的條件為真,那么我如何找到導致我的條件為真的ObjectB
值?
您可以嘗試的是:
List<ObjectB> sample = new List<ObjectB>();
List<ObjectA> mainList = new List<ObjectA>();
objectB result = sample.FirstOrDefault(ele => mainList.Any(x => ele == x.item);
或者,如果您想要多個對象,則:-
List<objectB> resultList = sample.Where(ele => mainList.Any(x => ele == x.item).ToList();
我假設ObjectB
是列表的表示
大量的娛樂例程供您娛樂
Enumerable.FirstOrDefault方法(IEnumerable)
返回序列的第一個元素,如果序列不包含任何元素,則返回默認值。
var obj = objectA.FirstOrDefault(x=> objectB.Contains(x.item));
Enumerable.First方法(IEnumerable)
返回序列的第一個元素。
var obj = objectA.First(x=> objectB.Contains(x.item));
Enumerable.Where方法(IEnumerable,Func)
根據謂詞過濾值序列。 每個元素的索引都在謂詞功能的邏輯中使用。
var objs = objectA.Where(x=> objectB.Contains(x.item));
搜索指定的對象,並返回整個List中第一次出現的從零開始的索引。
var obj = objectA.IndexOf(obj);
Enumerable.Last方法(IEnumerable)
返回序列的最后一個元素
返回序列的最后一個元素,如果找不到元素,則返回默認值。
Enumerable.Intersect方法(IEnumerable,IEnumerable)
通過使用默認的相等比較器比較值來產生兩個序列的集合相交。
int[] id1 = { 44, 26, 92, 30, 71, 38 };
int[] id2 = { 39, 59, 83, 47, 26, 4, 30 };
IEnumerable<int> both = id1.Intersect(id2);
foreach (int id in both)
Console.WriteLine(id);
/*
This code produces the following output:
26
30
*/
Enumerable.Except方法(IEnumerable,IEnumerable )
通過使用默認的相等比較器比較值來產生兩個序列的集合差異。
double[] numbers1 = { 2.0, 2.0, 2.1, 2.2, 2.3, 2.3, 2.4, 2.5 };
double[] numbers2 = { 2.2 };
IEnumerable<double> onlyInFirstSet = numbers1.Except(numbers2);
foreach (double number in onlyInFirstSet)
Console.WriteLine(number);
/*
This code produces the following output:
2
2.1
2.3
2.4
2.5
*/
多次迭代IEnumerable
要小心。
從性能和簡便性的角度來看,這是一種不錯的選擇。
var result = objectA.Where(x => objectB.contain(x.item)).ToList();
if (result.Any())
{
// use the already enumerated objects inside "result" list
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.