我正在实习并遇到问题,我已经尝试解决了三天,请帮忙。
我的问题:我有一个数据列表,我必须将其转换为数组。
TemplateSummary[] TransformTemplates(IEnumerable<Template> templates)
{
foreach (Template template in templates)
{
template.ToArray();
}
return ();
}
这不起作用,我尝试了一百万种不同的东西,我只是无法弄清楚。
模板:
在模板中:
public class Template:IEntity
{
public virtual int Id { get; set; }
public virtual string TemplateName { get; set; }
public virtual string Content { get; set; }
}
在ExempelAccess中:
public IEnumerable<Template> ListAllTemplates()
{
this.session.Query<Template>().ToList();
return ListAllTemplates();
}
public int Create(string templateName, string content)
{
using (var tx = session.BeginTransaction())
{
var template = new Template { Content = content, TemplateName = templateName };
session.Save(template);
tx.Commit();
return template.Id;
}
}
在ExempelEngine中:
TemplateSummary[] TransformTemplates(IEnumerable<Template> templates)
{
foreach (Template template in templates)
{
template.ToArray();
}
return ();
}
Templatesummary:
在IExempelManager中:
public interface IExempelManager
{
[OperationContract]
TemplateSummary[] ListTemplates();
[OperationContract]
void Create(string templateName, string content);
}
[DataContract]
public class TemplateSummary
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string TemplateName { get; set; }
[DataMember]
public string Content { get; set; }
}
在ExempelManager中:
public TemplateSummary[] ListTemplates()
{
return ListTemplates();
}
在ClientFactory中:
public TemplateSummary[] ListTemplates()
{
return Channel.ListTemplates();
}
在ExempelViewModel
中public ObservableCollection<TemplateSummary> TemplateSummaryResult { get; set; }
在ExempelEngine中:
TemplateSummary[] TransformTemplates(IEnumerable<Template> templates)
{
foreach (Template template in templates)
{
template.ToArray();
}
return ();
}
public TemplateSummary[] ListTemplates()
{
return ();
}
这些是解决方案中的所有参考资料。
答案 0 :(得分:3)
根据this comment,您希望获得此方法
TemplateSummary[] TransformTemplates(IEnumerable<Template> templates)
{
return templates.Select(x => new TemplateSummary
{
Id = x.Id,
TemplateName = x.TemplateName,
Content = x.Content
}).ToArray()
}
不要忘记在文件头包含using System.Linq;
。
答案 1 :(得分:1)
如果我可以假设有一种方法可以概括模板 - TemplateSummary SummarizeTemplate(Template template)
- 那么这就是您所需要的:
TemplateSummary[] TransformTemplates(IEnumerable<Template> templates)
{
return templates.Select(t => SummarizeTemplate(t)).ToArray();
}
要获得更详细的答案,您需要解释SummarizeTemplate
的工作原理。
这就是你需要的:
TemplateSummary[] TransformTemplates(IEnumerable<Template> templates)
{
return templates.Select(t => new TemplateSummary()
{
Id = t.Id,
TemplateName = t.TemplateName,
Content = t.Content,
}).ToArray();
}
答案 2 :(得分:-1)
假设ToArray
上的Template
返回TemplateSummary[]
,问题可以使用SelectMany
解析
TemplateSummary[] TransformTemplates(IEnumerable<Template> templates)
{
return templates.SelectMany(i => i.ToArray()).ToArray();
}