2012-04-22 68 views
0

我該怎麼辦下拉列表包含在C#中的所有數據類型在C#中的所有數據類型下拉列表

System.Int32,System.string

從這個下拉

所以伊燦選擇類型varible中

+1

你是說'ComboBox'?這是winforms還是ASP.NET? – climbage 2012-04-22 02:28:00

+0

「System.Int32,System.string」這些不是數據類型你是什麼意思?所有類型? – 2012-04-22 02:28:51

+0

你的意思是一個包含類型列表的組合框嗎? – annonymously 2012-04-22 02:31:42

回答

2

如果你只是在尋找原始類型的列表,你可以在這裏找到一個:

http://msdn.microsoft.com/en-us/library/hfa3fa08%28v=vs.110%29.aspx

或者,如果你想返回的方法原始類型的列表,試試這個:

public List<Type> GetTypes(){ 
     return typeof(int).Assembly.GetTypes().Where(t => t.IsPrimitive).ToList(); 
    } 

由於它使用LINQ,你將需要:

using System.Linq;

+0

我知道,放有任何方法來獲得所有這種類型? – AAHN 2012-04-22 02:36:53

+0

看我的編輯。 :) – 2012-04-22 02:41:04

+1

「值類型列表」這列出了.NET中的基本類型,並非所有可用的值類型。實際上,這個列表甚至不包含'System'命名空間中的所有值類型。例如,'DateTime'是'System'命名空間中的一個結構,但它不在此列表中。 – 2012-04-22 02:44:21

1

可以使用List<Type>所概述here。使用此列表作爲您的ComboBox的數據。

如果需要自動獲得所有的類型,請參閱this答案

+0

您需要使標籤使用'String'類型的值以便它們顯示,否則不會出現任何項目。 – annonymously 2012-04-22 02:49:50

0

如果你想遍歷組件,並得到所有類型的名字。

private List<string> GetTypes() 
{ 
    List<string> typeNames = new List<string>(); 

    /// or AppDomain.CurrentDomain.GetAssemblies() or loop through the folder with assemblies 
    Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); 
    foreach (AssemblyName an in assembly.GetReferencedAssemblies()) 
    { 
     foreach (Type type in an.GetTypes()) 
     { 
      typeNames.add(type.Name); 
     } 
    } 
    return typeNames; 
} 

如果您只想列出基本類型,請轉至C#規範並編輯組合框。

+0

這是? ........... – 2012-04-22 03:19:20

+0

對不起 我的錯誤謝謝? – AAHN 2012-04-22 03:25:16

+0

不相信「an.GetTypes()」是正確的,更像「an.GetType()」,但這仍然不會有GetEnumerator的定義 – 2013-03-20 20:53:27

1

最後,

Enum.GetNames(typeof(System.TypeCode)) 

這是什麼我談論

相關問題