2016-04-12 8 views
1

私のコードの一部では、IEnumerableリストを文字列に変換しています。IEnumerable文字列を除くすべてを選択

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

は、例えばに解決:

Admin, @everyone 

これは、ロールのユーザのすべての 'ランク' を含むIEnumerableあるDiscord.Net SDKを使用しています。

すべてのユーザーが離れていて、文字列から削除したいデフォルトの役割があります。デフォルトの役割は、私の考え

e.Server.EveryoneRole 

を使用して呼び出すことができます

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

または単に@everyoneまた、私の場合は良いですがフィルタリングになった既定の役割をフィルタリングするExceptを使用することでした。

+0

試したコードを表示できますか? – vendettamit

+0

あなたはそれをどこで見ていますか?デバッガでは?デバッガは、Linqクエリの結果を見るのには適していません。リストやその他の構造体にマテリアライズする必要があります。 –

+0

'e.User.Roles'のタイプは?あなたのコードも表示できますか?特に '.Except(...)'コードです。 – Enigmativity

答えて

3

は、あなただけの次のようなwhereを、使用することはできませんか?

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

ありがとう、私はどこを使用すると思っていなかった、完璧に働いた – TehPirate

0

行Where句を使用します。 のような何か:

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