Nesnelerin bir koleksiyonuna sahibim ve her bir nesnenin bir bit alanı numaralandırma özelliği var. Ne elde etmeye çalıştığım, tüm koleksiyonun bit alanı özelliğinin mantıksal OR'idir. Bunu, koleksiyon üzerinde döngüsel olarak nasıl halledebilirim (umarım LINQ ve bunun yerine bir lambda kullanıyor)? Böyle .Aggregate
kullanmayı denedikLINQ ve lambda'ları bir listedeki nesnelerin bit bayrak numaralandırma özelliğinde bit veya bit yerine getirmek için nasıl kullanabilirim?
[Flags]
enum Attributes{ empty = 0, attrA = 1, attrB = 2, attrC = 4, attrD = 8}
class Foo {
Attributes MyAttributes { get; set; }
}
class Baz {
List<Foo> MyFoos { get; set; }
Attributes getAttributesOfMyFoos() {
return // What goes here?
}
}
: Burada
ne demek istediğimi bir örnekreturn MyFoos.Aggregate<Foo>((runningAttributes, nextAttributes) =>
runningAttributes | nextAttribute);
ama bu işe yaramazsa ve ben anlamaya olamaz istediğimi elde etmek için kullanmak. Bunu hesaplamak için LINQ ve basit bir lambda ifadesini kullanmanın bir yolu var mı, yoksa sadece koleksiyon üzerinde bir döngü kullanarak mı kaldım?
Not: Evet, bu örnek durum, basit ve basit olduğundan basit bir foreach
yolun gideceği kadar basittir, ancak bu aslında çalıştığım şeyin yalnızca aşağı indirilmiş halidir.
bu 2 sorguları gerektirirken, hala güzel, basit bir çözümdür, ve bana en yararlı olduğuna inanıyoruz: Sonra
, ben aradığınız kod olduğunu düşünüyorum en iyi cevap değil) çünkü aslında sonra olduğum şeyin ne olduğunu hatırlamama yardımcı oldu. – cdeszaq