我不知道這是否可能,但可以說我有一個List
具有X個屬性的對象。然後我想過濾列表,但我只想從列表中取回非常具體的屬性。我期待這樣做LINQC#用LINQ創建一個截斷的集合
我知道我可以使用SELECT
,但仍然保留我不想要的屬性,只有空白值。但我不希望這些屬性出現在結果列表中。這可以做到嗎?
我不知道這是否可能,但可以說我有一個List
具有X個屬性的對象。然後我想過濾列表,但我只想從列表中取回非常具體的屬性。我期待這樣做LINQC#用LINQ創建一個截斷的集合
我知道我可以使用SELECT
,但仍然保留我不想要的屬性,只有空白值。但我不希望這些屬性出現在結果列表中。這可以做到嗎?
如果您選擇特定類型的實例並且不填充其所有值,那麼您確實會接收具有未填充值的實例。這聽起來像你想選擇一個全新的類型。
您可以創建一個自定義類型:
public class SomeType
{
public string SomeValue { get; set; }
}
,並選擇類型的實例:
.Select(x => new SomeType { SomeValue = x.SomeValue })
或者,如果你不想定義類,您現在可以選擇它作爲匿名類型:
.Select(x => new { SomeValue = x.SomeValue });
兩個將通常表現在消費代碼是相同的。
謝謝!最後一項是我真正想要的,匿名類型。這很好,讓我得到了我所需要的。 –
它可以很容易地選擇方法來完成:
var filteredList = list.Select(element =>
new MyClass {
// set necessary properties like
Name = element.Name,
...
}).ToList();
像這樣:
class Foo
{
public int PropertyOne {get;set;}
pubic string PropertyTwo {get;set;}
}
var theList = new List<Foo>{// some foo go here};
var filtered = theList.Select(f=> new {PropertyOne = f.PropertyOne }).ToList();
返回一個匿名類,cotaining只有所需的性能 –