我有一個結構是這樣的:Linq查詢,保持參照嵌套集合,其中項目被發現
class Action
{
uint ActionId;
}
class Trigger
{
public List<Action> Actions;
}
class Sequence
{
public List<Trigger> Triggers;
}
我需要獲得一些ActionId的行動,同時也保留了觸發的引用包含它。主要是:
foreach (Trigger checkTrigger in Triggers)
{
foreach (Action checkAction in checkTrigger.Action)
{
if (checkAction.ActionId == actionId)
{
action = checkAction;
trigger = checkTrigger;
break;
}
}
if (null != action) break;
}
剛剛獲得的動作很簡單:
Action action = Triggers
.SelectMany(t => t.Actions)
.FirstOrDefault(a => a.ActionId == actionId);
但我怎麼會獲得包含它的觸發?很顯然,與上述不同,因爲它將Actions列表合併爲一個集合,然後再搜索它。
感謝。沒有匿名類型可以這樣做嗎?說分配給以前聲明的變量? – FlintZA
@FlintZA - 用兩個屬性創建你自己的類並使用它。另一種方法 - 使用'Tuple'。 –
謝謝,我會給你一個鏡頭。 – FlintZA