foreach を使用せずに、ある RouteCollection に含まれる項目を C# の別の RouteCollection に転送するにはどうすればよいですか?
RouteCollection は Collection< RouteBase > から継承します
foreach を使用せずに、ある RouteCollection に含まれる項目を C# の別の RouteCollection に転送するにはどうすればよいですか?
RouteCollection は Collection< RouteBase > から継承します
関数を使用CopyTo
して、コレクション全体を互換性のある1次元配列にコピーできます。
このメソッドは、Array.Copyを使用して要素をコピーします。
最後に私が作った:
List<RouteBase> originalRoutes = routes.Select(i => i.Clone()).ToList();
これを行うには、次の 2 つの拡張メソッドが必要でした。
public static RouteBase Clone(this RouteBase route)
{
if (route.GetType() == typeof(Route))
return ((Route)route).Clone();
else
return null;
}
public static Route Clone(this Route route)
{
Route cloneRoute = new Route(route.Url, route.RouteHandler);
cloneRoute.Defaults = route.Defaults;
cloneRoute.Constraints = route.Constraints;
return cloneRoute;
}