C# Class select Xamarin 中的多个字段
C# Class select multiple fields in Xamarin
我想 select 列表中的多个字段。这是我的代码:
string[] NamesArray = Users
.Select(i => new { i.FirstName, i.LastName })
.Distinct()
.OrderByDescending(i => i.FirstName)
.ToArray();
当我使用此代码时,错误是:“无法将类型 'anonymous type: string FirstName, string LastName []' 隐式转换为字符串 []”
我能做什么???
那是因为匿名 select 所以当你 select 喜欢 (i => new { i.FirstName, i.LastName })
它会给你一个对象列表,每个对象都有 FirstName
和 LastName
不是字符串,不能是 string
.
的猫
所以你应该这样做:
string[] NamesArray = Users.OrderByDescending(i => i.FirstName)
.Select(i => i.FirstName + " " + i.LastName)
.Distinct()
.ToArray();
如果你想 select 匿名值那么你不能将它转换为 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
不能是 string[]
.
我想 select 列表中的多个字段。这是我的代码:
string[] NamesArray = Users
.Select(i => new { i.FirstName, i.LastName })
.Distinct()
.OrderByDescending(i => i.FirstName)
.ToArray();
当我使用此代码时,错误是:“无法将类型 'anonymous type: string FirstName, string LastName []' 隐式转换为字符串 []” 我能做什么???
那是因为匿名 select 所以当你 select 喜欢 (i => new { i.FirstName, i.LastName })
它会给你一个对象列表,每个对象都有 FirstName
和 LastName
不是字符串,不能是 string
.
所以你应该这样做:
string[] NamesArray = Users.OrderByDescending(i => i.FirstName)
.Select(i => i.FirstName + " " + i.LastName)
.Distinct()
.ToArray();
如果你想 select 匿名值那么你不能将它转换为 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
不能是 string[]
.