Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从EntitySet中拉出逗号分隔的字符串<;T>;_C#_.net_String_Linq_Linq To Sql - Fatal编程技术网

C# 从EntitySet中拉出逗号分隔的字符串<;T>;

C# 从EntitySet中拉出逗号分隔的字符串<;T>;,c#,.net,string,linq,linq-to-sql,C#,.net,String,Linq,Linq To Sql,如何将EntitySet转换为字符串?i、 (鲍勃、乔、弗兰克) 在下面的列表中,LINQContactType是一个单独的表,可以有许多值。我试图将其转换为逗号分隔的字符串 var caseNotes =context.tblCaseNotes .Where(cn => cn.PersonID == personID) .OrderBy(cn => cn.ContactDate) .Se

如何将
EntitySet
转换为字符串?i、 (鲍勃、乔、弗兰克)

在下面的列表中,LINQ
ContactType
是一个单独的表,可以有许多值。我试图将其转换为逗号分隔的字符串

var caseNotes =context.tblCaseNotes
                .Where(cn => cn.PersonID == personID)
                .OrderBy(cn => cn.ContactDate)
                .Select(cn => new
                            {
                                cn.ContactDate,
                                cn.ContactDetails,
                                cn.TimeSpentUnits,
                                cn.IsCaseLog,
                                cn.IsPreEnrollment,
                                cn.PresentAtContact,
                                ContactType = string.Join(", ", cn.tblCaseNoteContactTypes.ToArray()),
                                cn.InsertDate,
                                cn.InsertUser,
                                cn.CaseNoteID,
                                cn.ParentNote
                            });
追加
.ToArray()在LINQ查询的末尾,并将其用作
String.Join()的参数

要使其工作,LINQ查询必须返回一个字符串,以便该数组是一个字符串数组。或者具有与所需内容匹配的
ToString()
的对象

编辑:添加新信息时:

如果tblCaseNotesContactTypes是一个对象,则需要在
.ToArray()之前添加一个
.Select(t->{return t converted to string})
在LINQ查询的末尾,并将其用作
String.Join()的参数

要使其工作,LINQ查询必须返回一个字符串,以便该数组是一个字符串数组。或者具有与所需内容匹配的
ToString()
的对象

编辑:添加新信息时:

如果tblCaseNotesContactTypes是一个对象,则需要在
.ToArray()
检查是否为空之前添加
.Select(t->{return t converted to string})

ContactType=cn.tblCaseNoteContactTypes.Any()?string.Join(“,”,cn.tblCaseNoteContactTypes.ToArray()):string.Empty

而且

tblCaseNoteContactTypes

如果此集合的成员不是字符串,
Join
将遇到一些问题。

检查是否为空

ContactType=cn.tblCaseNoteContactTypes.Any()?string.Join(“,”,cn.tblCaseNoteContactTypes.ToArray()):string.Empty

而且

tblCaseNoteContactTypes


如果此集合的成员不是字符串,
Join
将遇到一些问题。

您必须从
tblCaseNoteContactTypes
中选择要连接的列

 ContactType = string.Join(", ", 
         cn.tblCaseNoteContactTypes.Select(x => x.MyColumn))

您必须从
tblCaseNoteContactTypes
中选择要连接的列

 ContactType = string.Join(", ", 
         cn.tblCaseNoteContactTypes.Select(x => x.MyColumn))


你有什么错误?我想我可以猜到,但是如果你告诉我们而不是让我们猜,可能会更快更容易。对不起,我收到一个错误,说明我不能将
EntitySet指定为参数字符串[]
我的问题是
tblCaseNotesContactTypes
不仅仅是字符串吗?它有3列;GUID、GUID、Int。Int与描述所在的管理表相关。当我把它打出来的时候,我可以看出我已经走远了!我需要做的完全不同…tblCaseNoteContactType是什么类型?请编辑您的问题以反映缺少的信息。您还可以删除不需要的信息(大多数是
cn…
行)。您会遇到什么错误?我想我可以猜到,但是如果你告诉我们而不是让我们猜,可能会更快更容易。对不起,我收到一个错误,说明我不能将
EntitySet指定为参数字符串[]
我的问题是
tblCaseNotesContactTypes
不仅仅是字符串吗?它有3列;GUID、GUID、Int。Int与描述所在的管理表相关。当我把它打出来的时候,我可以看出我已经走远了!我需要做的完全不同…tblCaseNoteContactType是什么类型?请编辑您的问题以反映缺少的信息。您还可以删除不需要的信息(大多数是
cn…
行)。我非常确定这是我在示例中已经拥有的信息,不是吗?我非常确定这是我在示例中已经拥有的信息,不是吗?太好了!这几乎就是我想要的,我得到了一个
IEnumerable不能分配给String[]
…想法?我添加了一个
.ToArray()
,世界很好!感谢
string.Join(“,”,cn.tblCaseNoteContactTypes.Select(x=>x.tblcasenotesmanitem.itemsdescription).ToArray()
接受
IEnumerable
作为框架4中的第2个参数。如果您使用的是较旧的版本,则需要
ToArray()
Ah,这就解释了这一点。遗憾的是,我仍然在3.5上。现在已经很壮观了。谢谢你的帮助。@RefractedPaladin没问题,很高兴我能帮忙。太好了!这几乎就是我想要的,我得到了一个
IEnumerable不能分配给String[]
…想法?我添加了一个
.ToArray()
,世界很好!感谢
string.Join(“,”,cn.tblCaseNoteContactTypes.Select(x=>x.tblcasenotesmanitem.itemsdescription).ToArray()
接受
IEnumerable
作为框架4中的第2个参数。如果您使用的是较旧的版本,则需要
ToArray()
Ah,这就解释了这一点。遗憾的是,我仍然在3.5上。现在已经很壮观了。“谢谢你的帮助。”圣骑士:没问题,很高兴我能帮忙。