回答
那麼,你只是通過沒有清楚地說明你第一次想要什麼來避免已經發布的每個答案。您可以延長使用Enumerable.Max
容易給你什麼,你現在想:
string max =
new[] {
Tuple.Create(v, "v"),
Tuple.Create(p, "p"),
Tuple.Create(k, "k")
}.Max()
.Item2;
另一種方法是:
string max = v >= p && v >= k ? "v" : p >= v && p >= k ? "p" : "k";
但你看差多少可讀性比第一個版本?
答案應該是vor p或k不是值 – user2272260
@ user2272260:我完全不理解您的評論。 – jason
@ user2272260你是指基於哪個實際變量最大的文本「p」,「v」或「k」? – n8wrl
var values = new List<int> { v, p, k };
var maxValue = values.Max();
更新,重新修改過的問題:變量名不編譯的IL代碼存在。因此您不能輕鬆檢索它們。
但是你可以創建一個字典。把我的頭頂部(我並沒有想這個,但它可能會略有沿着這些路線):
答案應該是v或p或k不是值 – user2272260
其他的答案都非常好,但爲了完整起見,我想要指出的是,爲了簡單起見,你也可以使用Math.Max
:
var max = Math.Max(Math.Max(v, p), k);
更新給你更新的問題,我建議這樣的:
var max = v > p ? v > k ? "V" : p > k ? "P" : "K" : p > k ? "P" : "K";
這是相當笨重,但它的工作原理(k
與p
或v
勝聯繫,p
勝與v
的關係)。
這也可能會稍微好一些(因爲它不會創建一個新的列表和枚舉器,它們都需要GC:編輯) – FuleSnabel
下面是一些手工maded方法的基礎上,仿製藥和最大距離可枚舉:
public static T MaxVal<T>(params T[] items)
{
return items == null? default(T) : items.Max();
}
而對於整數,例如,你可以這樣調用:
Console.WriteLine(MaxVal(4, 8, 15, 16, 42));
您不需要指定'
是的,你是對的。舊習難改。修正,澄清,也不是更新問題的答案... – Dmytro
- 1. r獲取具有最大值的變量名稱
- 2. 獲取具有最高/最大值的變量的名稱與PHP
- 3. 確定變量具有最高值和最低值
- 4. 找到'名稱'不是變量的值保存最大值matlab
- 5. 具有相同名稱的PHP變量
- 6. 具有變量名稱的javascript數組
- 7. 確定運行時的變量名稱
- 8. Angularjs獲取最大值的變量名稱
- 9. 與最大值相關的返回變量名稱Matlab
- 10. 根據值確定常量的名稱
- 11. 確定python中的最大變量
- 12. 獲取多個最大變量名稱
- 13. 獲取具有第二低/最小值的變量的名稱與PHP
- 14. 如何用Android確定最近的,最大的城市名稱?
- 15. VB 2010 - 具有標籤名稱值的變量
- 16. Bash腳本:從數組中選擇具有最高值和輸出變量名稱的變量,而不是值
- 17. 具有相同變量名稱的變量作用域?
- 18. Emacs Lisp - 聲明具有變量/變量名稱的函數
- 19. 在具有變量名稱的模塊中定義類方法
- 20. 變量的SAS最大值
- 21. 具有正確最小值和最大值的垂直Seekbar?
- 22. 具有相同名稱的全局變量和局部變量,意外值
- 23. 制定具有不確定數量變量的公式的最佳方法
- 24. php定義的變量具有空值
- 25. 批量重命名具有特定名稱的所有文件
- 26. 具有特定範圍的隨機整數:值變得大於最大值
- 27. Python,所有綁定變量的打印名稱和值
- 28. 具有匹配變量名稱的命名函數表達式
- 29. 選擇在變量中提供列名稱的列的最大值
- 30. Actionscript 3.0:添加具有變化變量名稱的對象
這是功課? –
[C#find largest number](http://stackoverflow.com/questions/5117251/c-sharp-find-biggest-number),[列表最大整數值查找列表](http:// stackoverflow。 com/questions/5295112/maximum-integer-value-find-in-listint) –
Michelle
僅供參考,此處的社區更好地回答了顯示您嘗試爲自己解決問題的證據的問題。這將使其不太可能被降低和/或關閉。例如,在這裏你可以說你嘗試使用'Math。Max',但它只是返回變量的值,而您想要變量的*名稱*。 –