gpt4 book ai didi

将列表展平为带分隔符的字符串的 Linq 投影

转载 作者:行者123 更新时间:2023-12-02 07:47:13 27 4
gpt4 key购买 nike

我正在尝试连接并以逗号分隔(或空格)列表并将其投影。我在下面有一些示例代码。

public class Friend
{
public string Name { get; set; }
}

public class Person
{
public int PersonID { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
List<Friend> Friends { get; set; }
}

public class ProjectedPerson
{
public int PersonID { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public string FriendsList { get; set; }
}

public class Test
{
public void MyTest()
{
var query = from p in MyDataStore.Person
select p;

var results = from q in query
select new ProjectedPerson
{
PersonID = q.PersonID,
FirstName = q.FirstName,
Surname = q.Surname,
FriendsList = q.FriendsList.Concat() //??? How can I concat this and return a string
};

}
}

最佳答案

使用 string.Join(注意列表首先需要在内存中),以连接 Friend 对象中的选定属性。如果您使用的是 .NET 3.5,则需要使用 ToArray() 以及 string.Join 的重载。3.5 中的 Join 需要一个数组。

var query = (from p in MyDataStore.Person
select p).ToList(); // <-- bring into memory with ToList()

var results = from q in query
select new ProjectedPerson
{
PersonID = q.PersonID,
FirstName = q.FirstName,
Surname = q.Surname,
FriendsList = string.Join( ", ", q.Friends.Select( f => f.Name ) )
};

关于将列表展平为带分隔符的字符串的 Linq 投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6177811/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com