-1

次の値を含む配列があります。

"admin", "superadmin", "user"

「ユーザー」のみに等しい値をスキップしようとしました:

Roles.GetAllRoles().SkipWhile(v=>v.Equals("user"))

ただし、結果にはまだ 3 つの値がすべて含まれています。ただし、「admin」を Equals() に入れると、結果は次のようになります。

"superadmin", "user"

「ユーザー」のみをスキップするにはどうすればよいですか?

前もって感謝します!

4

3 に答える 3

2

Whereを使用するのはどうですか

述語に基づいて一連の値をフィルタリングします。

何かのようなもの

Roles.GetAllRoles().Where(v => !v.Equals("user"))
于 2013-07-29T03:40:32.640 に答える
2

LINQ Skip メソッドは、条件に一致しない要素が見つかるまで、要素のみをスキップします。リストをフィルタリングしますか?

Roles.GetAllRoles().Where(v=> !v.Equals("user"))
于 2013-07-29T03:42:25.727 に答える
0

SkipWhile最初の要素でキャンセルされたと思いますadminWhere代わりに次のように使用します。

Roles.GetAllRoles().Where(x=>x!="user");

それでも を使用したい場合はSkipWhile、 のすべての要素がuser先頭に連続して配置されるようにリストを並べ替える必要があります。

Roles.GetAllRoles().OrderBy(x => x != "user").SkipWhile(x=>x.Equals("user"))
于 2013-07-29T03:44:31.687 に答える