このインサートを短くすることはできますか? foreachをスキップできるように思われる。このインサートを短くすることができます
if (users == null)
{
users = new List<User>();
foreach (UserIDGroupID userIDGroupID in UserIDsGroupIDs.Where(x => x.GroupID == ID))
{
Users.AddRange(LibraryUsers.Where(x => x.ID == userIDGroupID.UserID));
}
}
'Users.AddRange(LibraryUsers.Where(X => x.Groups.Any(グラム=> g.GroupID == ID)));'これはもちろん、あなたがナビゲーションプロパティを持っていると仮定しライブラリ利用者からグループへ。 –
@RobertMcKee UserIDsGroupIDsを使用しません – Paparazzi
これがポイントです。これがEF、nHibernateまたはLINQtoSQLのようなもので、LibraryUserクラスにNavigationプロパティがある場合、UserIDsGroupIDsコレクションはまったく必要なく、単一のSQLクエリを生成して、必要なものを取得します複数または複数の倍数よりもしかし、モデルクラス、データベース構造(これはデータベースに関係する場合でも)、そしてあなたのコレクションをバックアップするものを提供する必要があります。それでは、私はあなたにもっと良い答えを与えることができました。 –