例如,我想回傳值為1的dto,但只顯示符合查詢條件的子專案。是否可以通過查詢父物體來做到這一點,或者需要在子物體上 "手動 "完成?
using System;
using System.Linq;
using System.Collections.Generic;
public class Program public static void Main()
{
List<Dto> dtos = new List<Dto>()。
var items = new List< Item>();
items.Add(new Item(){ Value = 5}) 。
items.Add(new Item(){ Value = 6}) 。
var dtos2 = dtos.Where(a=>a.Items.Any(x=>x.Value ==8) 。)
dtos.Add(new Dto()
{
Id = 1,
專案 = 專案
});
foreach(var item in dtos2)
{
Console.WriteLine(item.Id)。
foreach(var item2 in item.Items)
{
Console.WriteLine(item2.Value)。
}
}
}
DTO類是
public class Dto
{
public int Id {get; set; }
public List<Item> Items {get; set; }
}
public class Item
{
public int Value {get; set; }
}
uj5u.com熱心網友回復:
如果不對Items屬性進行突變,或者不對新的Dto物件進行實體化,這是不可能的。
雖然可以進行突變操作,但不應該使用為查詢而設計的 LINQ 來嘗試。
var dtos2 = dtos.Select(a => newDto
{
Id = a.Id,
Items = a.Items.Where(x => x.Value == 8).Tolist()
});
這樣做的好處是保持原來的dtos不變。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/310091.html
標籤:
上一篇:檢查二維串列中不同的特定字串
