所以我尝试使用linq表达式来获取与这些记录相关的作业单相关联的某些属性。我实际上在访问这些值时遇到了问题。
var accountManagerObject = (
from j in api.hc_joborderSet
where j.statecode == hc_joborderState.Active &&
j.hc_systemuser_hc_joborder_AccountManager != null &&
j.hc_ExpirationDate <= dateFilter
select new { accountmangerid = j.hc_AccountManager.Id, jobid = j.Id, jobName = j.LogicalName })
.ToLookup(o=>o.accountmangerid);
foreach (var jobId in accountManagerObject.ToList())
{
Console.WriteLine(jobId.Select(o=>o.jobName));
}
而不是返回值,我的写作线正在返回
System.Linq.Enumerable + WhereSelectEnumerableIterator
2[<>f__AnonymousType0
3的System.Guid,的System.Guid,System.String],System.String] System.Linq.Enumerable + WhereSelectEnumerableIterator2[<>f__AnonymousType0
3的System.Guid,的System.Guid,System.String],System.String] System.Linq.Enumerable + WhereSelectEnumerableIterator2[<>f__AnonymousType0
3的System.Guid,的System.Guid,System.String],System.String] System.Linq.Enumerable + WhereSelectEnumerableIterator2[<>f__AnonymousType0
3的System.Guid,的System.Guid,System.String],System.String] System.Linq.Enumerable + WhereSelectEnumerableIterator2[<>f__AnonymousType0
3的System.Guid,的System.Guid,System.String],System.String]
答案 0 :(得分:2)
您的Select()
会返回IEnumerable<string>
。此实例的ToString()
方法仅为您提供类型名称。
您可能想要显示jobName
s的序列。例如,这可以这样做:
foreach (var jobId in accountManagerObject)
{
foreach(string jobName in jobId.Select(o=>o.jobName))
Console.WriteLine(jobName);
}
或更短时间使用string.Join
:
foreach (var jobId in accountManagerObject)
{
Console.WriteLine(string.Join(Environment.NewLine, jobId.Select(o=>o.jobName)));
}
请注意,您.ToList()
中的foreach
电话是不必要的,应该省略。无需从此LookUp
创建新列表,只需迭代即可。