我有以下變數,
var actionIds = formFields.Select(x => x.GridDefinition.Actions.ToList().Select(y =>y.DFActionID).ToList()).ToList();
它給了我結果,List<List<int>但我想要結果,List<int>
我應該怎么做?
稍后我需要使用如下所示的單個 ID 從上面的串列中檢查 ID。
var removedFormFieldsActions = existingFormFieldsActions.Where(x => !actionIds.Contains(x.DFActionID));
目前正在給出一個錯誤。
uj5u.com熱心網友回復:
您的代碼中有幾個問題。首先,Actions如果您要在此之后立即映射每個操作,為什么要轉換為串列?因此,第一個解決方法是洗掉該ToList()呼叫:
var actionIds = formFields
.Select(x => x.GridDefinition.Actions.Select(y => y.DFActionID).ToList())
.ToList();
然后第二個改進來了,這源于一個根本的問題——你到底想得到什么?所有單獨串列中的所有這些專案是否都相同,并且應該放在一個串列中?如果是這樣,那么您需要使用SelectMany()運算子,它再次不需要中間體,ToList()因為 finalToList()無論如何都會收集所有專案:
var actionIds = formFields
.SelectMany(x => x.GridDefinition.Actions.Select(y => y.DFActionID))
.ToList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/494218.html
上一篇:從`ExpressionVisitor`對Lamda運算式呼叫`Compile()`時,出現“必須是可簡化節點”錯誤
下一篇:從兩個串列中獲取唯一專案
