排序列表导致转换'void'错误parameterList是一个字典,然后我将其转换为通用列表,然后尝试排序。我希望列表作为通用列表返回,如您所见:ListsortedList=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));错误:“无法将源类型'void'转换为目标类型List它在谈论什么空虚......?更新列表排序仍然不会使用我从http:///oauth.googlecode.com/svn/code/csharp/OAuthBase.cssugestions或我原来的排序代码,所以我是这样做的:DictionaryauthParamsNonNormalized=newDictionary{{Constants.OAuthConsumerKey,consumerKey},{Constants.OAuthSignatureMethodKey,methodType},{Constants.OAuthTimestampKey,timeStamp()},{Constants.OAuthTokenKey,accessToken},{Constants.OAuthNonceKey,nonce},{Constants.OAuthVersionKey,Constants.OAuthVersion}};然后我用ToList()t因为这是包含此代码的方法在字典中传递:ListsortedParamList=parmeterList.ToList();sortedParamList.OrderBy(p=>p.Key,StringComparer.Ordinal).ThenBy(p=>p.Value,StringComparer.Ordinal).ToList();当我检查sortedParamList时,它仍然是相同的......没有任何反应更新:废话,是的,我搞砸了最后一个,这是工作代码:.Ordinal).ThenBy(p=>p.Value,StringComparer.Ordinal).ToList();List.Sort不返回排序列表;相反,它执行“就地”排序,改变调用它的List实例。您可能想使用:List>sortedList=parameterList.ToList();sortedList.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));下面的LINQ在语义上是等价的,但更清晰:List.Sort的所有重载就地排序并且不返回任何内容。也许IEnumerable.OrderBy更适合你想做的事情。Sort方法是List的实例方法,对当前实例进行排序,所以返回的不是列表。您需要拆分代码。列表>sortedList=parameterList.ToList();sortedList.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));.Sort((left,right)=>...Sort方法是void,不能放在List上面是C#学习教程:对list进行排序导致'void'错误的转换所有内容共享,如果它对大家有用,需要了解更多C#学习教程,希望大家多多关注—本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处: