这个问题可能已经回答了数百次了,但是可以解决了。

我有这段代码:

private void PopulateStringDropdownList(List<ObjectInfo> listObject,
                                        object selectedType = null)
{
    List<string> listString = listObject.OrderBy(x => x.m_Type).ToString();
    for (int i = 0; i < listString .Count; i++)
    {
        for (int j = i + 1; j < listString .Count; j++)
        {
            if (String.Equals(listString [i], listString [j]))
            {
                listString.RemoveAt(j);
            }
        }
    }
    ViewBag.property1 = new SelectList(listString );
}

因此,基本上,我试图用来自传入参数列表中包含的每个对象的属性的字符串填充下拉列表。

但是由于您在那里看到的错误,代码无法编译,而且我还没有确切地理解为什么。任何人有帮助吗?

最佳答案

这是有问题的行:

List<string> listString = listObject.OrderBy(x => x.m_Type).ToString();
ToString返回一个字符串,并且您尝试分配给List<string>变量。

您需要执行以下操作:
List<string> listString = listObject.OrderBy(x => x.m_Type)
                                    .Select(x => x.ToString())
                                    .ToList();

该语句将把您的listObject枚举为所需的顺序,然后将值转换为字符串,最后将可枚举的格式转换为List<string>

10-05 19:22