那是因为匿名选择所以当你选择喜欢(i => new { i.FirstName, i.LastName })
它会给你一个对象列表,每个对象都有FirstName
,LastName
它不是字符串,不能是猫string
。
所以你应该做这样的事情:
string[] NamesArray = Users.OrderByDescending(i => i.FirstName)
.Select(i => i.FirstName + " " + i.LastName)
.Distinct()
.ToArray();
如果您想选择匿名值,那么您无法将其转换string[]
为最佳方式,var
例如:
var NamesArray = Users.OrderByDescending(i => i.FirstName)
.Select(i => new { i.FirstName , i.LastName})
.Distinct()
.ToArray();
但它也为您提供具有FirstName
和LastName
属性的对象列表。
但另一种解决方法是:
var NamesArray = Users.OrderByDescending(i => i.FirstName)
.Select(i => new string[] { i.FirstName, i.LastName })
.Distinct()
.ToArray();
foreach(string[] str in NamesArray)
{
string firstName = str[0];
string lastName = str[1];
}
或者:
List<string[]> NamesArray = Users.OrderByDescending(i => i.FirstName)
.Select(i => new string[] { i.FirstName, i.LastName })
.Distinct().ToList();
或者:
IEnumerable<string[]> NamesArray = Users.OrderByDescending(i => i.FirstName)
.Select(i => new string[] { i.FirstName, i.LastName })
.Distinct();
foreach(string[] str in NamesArray)
{
string firstName = str[0];
string lastName = str[1];
}
无论如何,您不能将其直接转换为string[]
手段NamesArray
can't be string[]
。