2017-01-19 10 views
-1

を制限するためのforeachテイク()にキー値をインポートIリスト項目をループのAC#プロジェクトで、次のforeachループを持っているとそれだけで3リスト項目C#

を表示して、私の

をして、それを制限私がする必要があるのは、キーの代わりにthを置き換えることです。

私はあなたがConfigurationManagerを使用することができますアプリケーション/ Web.configファイルにアクセスするには

+0

あなたは1つのint変数をとり、その変数に設定値を取得し、その変数をあなたのTake()に渡すことができますか? –

答えて

3

であることを意味しています推測している:

int value = (int)System.Configuration.ConfigurationManager.AppSettings["TrendingNavLimit"]; 

詳細は、その記事に従ってください:https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager(v=vs.110).aspx

我々場合すべてをまとめると、ソリューションは次のようになります:

int value = (int)ConfigurationManager.AppSettings["TrendingNavLimit"]; 
foreach (NavigationItem item in items.Take(value)) 
{ 
    @NavigationHelper.SimpleNavLink(config, item, absoluteUrls); 
} 

SOLIDの点では、私はリバースアプローチになります。プロパティTrendingNavLimit {get;}IConfigProviderし、データを取得するためにConfigurationManagerを使用して、あなたのクラスでそれを注入することを、デフォルトのクラスでinterfaceことを実現する -

私はinterfaceを作成します。

+0

これは私が質問のコメント –

+0

を意味するものです。ありがとう、私はそれを試み、プロジェクトを公開しようとすると、エラー "現在のコンテキストにconfigurationManagerが存在しません" – shaneklive

+0

フルネームスペースを使用するか、 'System.Configuration ;あなたのクラスの上に。 C#では、configurationManagerはConfigurationManagerと同じではありません。参照も欠落している可能性があります。プロジェクトのSystem.Configurationへの参照があることを確認してください。 – MadOX