0

私はこの方法を持っています、

private List<SelectListItem> GetList()
{
    var values = from LtlAccountType item in 
                 Enum.GetValues(typeof(LtlAccountType))
                 select new SelectListItem 
                 { Text = item.ToString(), Value = item.ToString() };
    return values.ToList();
}

enumクエリ後にasを渡し、parameterリストを返す方法enum

private List<SelectListItem> GetList(Enum obj)
{
    var values = from obj item in Enum.GetValues(typeof(obj))
                 select new SelectListItem 
                 { Text = item.ToString(), Value = item.ToString() };
    return values.ToList();
}

このエラーが発生しましたobj

Type or namespace name expected

4

3 に答える 3

1

アップデート:

C# 7.3 以降でSystem.Enumは、型制約として使用できます。


GetType()を使用する代わりに呼び出す必要がありますtypeof()Enumまた、列挙型の基本クラスとして使用することはできません。最善の解決策は、使用することstructです...

private List<SelectListItem> GetList<T>(T obj) where T : struct
{
    var values = from Enum item in Enum.GetValues(obj.GetType())
                 select new SelectListItem { Text = item.ToString(), Value = item.ToString() };
    return values.ToList();
}
于 2013-01-21T09:03:06.293 に答える
1

これobjは、.NET では有効な型識別子ではないためです。簡単なことをしませんか

List<SelectedListItem> result = new List<SelectedListItem>();
foreach (var item in Enum.GetValues(typeof(obj)))
   result.Add(new SelectedListItem() { Text = item.ToString(), Value = item.ToStringt() }

return result;
于 2013-01-21T09:03:26.857 に答える
1

私はこれを試してみましたが、うまくいきます:

private static List<SelectListItem> GetList(Enum item)
{
    var values = from Enum e in Enum.GetValues(item.GetType())
                 select new SelectListItem { Text = e.ToString(), Value = e.ToString() };
    return values.ToList();
}
于 2013-01-21T09:06:31.473 に答える