リストをソートしようとすると、何故voidエラーが発生するのか分かりません。 parameterListは当初は辞書であり、それからジェネリックリストに変換してソートを試みます。リストを並べ替えると「void」エラーが発生する
List<KeyValuePair<string,string>> sortedList = parameterList.ToList().Sort((left, right) => left.Key.Equals(right.Key, StringComparison.Ordinal)
? string.Compare(left.Value, right.Value, StringComparison.Ordinal)
: string.Compare(left.Key, right.Key, StringComparison.Ordinal));
はエラー: "Cannot convert source type 'void' to target type List<System.Collections.Generic.KeyValuePair<string,string>>
それは話して、このボイドは何ですか... ??
が
を更新し、私は戻って、あなたが見ることができるように、一般的なリストとしてリストが欲しいですリストの並べ替えは、Sugestionsや元の並べ替えコードのいずれかを使用してソートされません。http://oauth.googlecode.com/svn/code/csharp/OAuthBase.cs
だから、これは私はそれを持っているかである:
Dictionary<string, string> authParamsNonNormalized = new Dictionary<string, string> {
{Constants.OAuthConsumerKey, consumerKey},
{Constants.OAuthSignatureMethodKey, methodType},
{Constants.OAuthTimestampKey, timeStamp()},
{Constants.OAuthTokenKey, accessToken},
{Constants.OAuthNonceKey, nonce},
{Constants.OAuthVersionKey, Constants.OAuthVersion}
};
これは、このコードが含まれている私の方法への着信辞書だったそれから私は、ToListメソッド()トンと一般的なリストに変換します
List<KeyValuePair<string,string>> sortedParamList = parameterList.ToList();
sortedParamList.OrderBy(p => p.Key, StringComparer.Ordinal)
.ThenBy(p => p.Value, StringComparer.Ordinal).ToList();
sortedParamListをチェックすると、まだ同じ順序です...何も起こりません。
更新日:
がらくたを、いや、私は最後のものを台無しに、ここでの作業コードは次のとおりです。
List<KeyValuePair<string, string>> sortedParamList = parameterList.OrderBy(p => p.Key, StringComparer.Ordinal)
.ThenBy(p => p.Value, StringComparer.Ordinal).ToList();
それは本当に複雑な比較だから私はそのための比較演算を書い検討したいです。そうすれば、その行とその場所で、その厄介なコードを手に入れることができます。 –
Nooo ... 'OrderBy' *はソートされた列挙可能な値を返します。 'Sort'のようにインプレースでソートしません。私はこれが多くの人にとって混乱するかもしれないことを知っています。 'parameterList.OrderBy'演算の結果をターゲット変数に代入する必要があります。下の私の例を見てください。 – Douglas
yeaおそらく私は後でユーティリティメソッドを作成します...これはちょうどこの作業をしようとするコードです、これはビルドしている新しいラッパーです、そして、私は戻ってクリーンアップします。 – PositiveGuy