我有NHibernate IList。我想转换为List。请帮帮我。
IList<Tag> list = Tag.GetAll();
我想将此转换为列表
public class CategoryTag
{
public int ID { get; set; }
public string TagName { get; set; }
public CategoryTag()
{
}
public List<CategoryTag> GetCategoryTagList()
{
IList<Tag> list = Tag.GetAll();
// How do I return Tag as List?
return tagList;
}
}
我想更新我的问题,因为我的问题没有得到很好的解释。
以下是我将其传递给jQuery UI Autocomplete的代码:
[WebMethod]
public IList<Tag> FetchTagList(string tag)
{
var ctag = new List<Tag>(Tag.GetAll())
.Where(m => m.TagName.ToLower().StartsWith(tag.ToLower()));
return ctag.ToList();
}
我收到以下错误:
无法序列化接口System.Collections.Generic.IList`1 [[QuestionCenter.Domain.Tag,QuestionCenter.Domain,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]。
任何将我的IList传递给JSON的解决方案都会对我有所帮助。谢谢。
答案 0 :(得分:2)
使用LINQ:
return tagList.ToList();
答案 1 :(得分:2)
使用.ToList()扩展方法:
return list.ToList()
答案 2 :(得分:1)
您需要将返回类型更改为Tag []并使用ToArray()而不是ToList()。 IIRC,你不能在网络方法中序列化IList。
答案 3 :(得分:0)
var myList = Tag.GetAll()
.ConvertAll(tag => new CategoryTag{ Id = tag.Id, XXX = tag.YYY})
.ToList();
<强>更新强>
根据您对回答的评论,我会改用AutoMapper。
答案 4 :(得分:0)
返回Tag.GetAll()。ToList()不适合你吗?