2016-04-12 15 views
1

Kodumun bir bölümünde, IEnumerable listesini bir dizeye dönüştürüyorum.IEnumerable dize dışındaki tüm seçenekleri seçin

String.Join(", ", e.User.Roles.Select(o => o.ToString())) 

örneğin çözer: Bu Discord.Net SDK kullanan

Admin, @everyone 

Roller kullanıcının tüm 'saflarına' ihtiva eden bir IEnumerable olduğu.

Her kullanıcının, dizgeyi kaldırmak istediğim bir parçası olduğu varsayılan bir rol var. varsayılan rol

e.Server.EveryoneRole 

Benim fikrim kullanılarak çağrılabilir

System.Linq.Enumerable+<ExceptIterator>d__72`1[System.Char], System.Linq.Enumerable+<ExceptIterator>d__72`1[System.Char] 

ya da sadece basitçe @everyone filtreleyerek için sonuçlandı varsayılan rolü filtrelemek için Except kullanmaktı benim durumumda da iyidir.

+0

Denediğiniz kodu gösterebilir misiniz? – vendettamit

+0

Bunu nerede görüyorsunuz? Hata ayıklayıcıda mı? Hata ayıklayıcı bir Linq sorgusunun sonuçlarını görmek için harika bir yer değildir. Bunu bir Liste'ye veya başka bir yapıya yansıtmanız gerekir. –

+0

'e.User.Roles' türünü nedir? Kodunuzu da gösterebilir misiniz? Özellikle '.Except (...)' kodu. – Enigmativity

cevap

3

sadece aşağıdaki gibi bir where, kullanamaz mıyız?

String.Join(", ", e.User.Roles 
         .Where(o => o != e.Server.EveveryoneRole) 
         .Select(o => o.ToString())) 
+0

Teşekkürler, nerede çalıştığımı düşünmedim, mükemmel çalıştı – TehPirate

0

Bir satır kullanın. şey gibi:

String.Join(", ", e.User.Roles.Select(o => o.ToString()).Where(s => s != e.Server.EveveryoneRole)