我的模型中有以下课程:
public class Notebook : TableServiceEntity
{
public string NotebookLinksJSON { get; set; }
public string NotebookLinksCount {
get {
var a = NotebookLinksJSON.FromJSONString<Notebook.Link>().Details;
var b = a.Count();
return NotebookLinksJSON.FromJSONString<Notebook.Link>().Details.Count();
}
}
public class Link
{
public Link() {
_details = new List<Detail>();
}
public IList<Detail> Details {
get { return _details; }
}
private List<Detail> _details = new List<Detail>();
public class Detail
{
public string L { get; set; }
public string R { get; set; }
}
}
}
我想要的是拥有一个属性NotebookLinksCount,它将返回NotebookLinksJSON字符串中的详细信息。
变量的数据类型如下:
var a = NotebookLinksJSON.FromJSONString<Notebook.Link>().Details;
var b = a.Count();
a is an interface System.Collections.Generic.IList<T>
b is ?? <<< nothing shows when I try to find out what type it is
当我构建时,我收到以下错误:
Error 3 Non-invocable member
'System.Collections.Generic.ICollection<S.Storage.Models.Notebook.Link.Detail>.Count'
cannot be used like a method.
有人可以帮我提一些关于如何获得NotebookLinks数量的建议吗?此外,如果NotebookLinksJSON为null,那么我希望计数返回零。
答案 0 :(得分:6)
Count
是一个属性。移除()
并将其命名为:
NotebookLinksJSON.FromJSONString<Notebook.Link>().Details.Count;
修改强>
在评论中回答@Melissa中的问题:要在NotebookLinksJSON
对象为空的情况下使其返回null,您需要进行空检查。
public int NotebookLinksCount {
get {
return (NotebookLinksJSON != null) ?
NotebookLinksJSON.FromJSONString<Notebook.Link>().Details.Count :
0;
}
}
我建议您更改NotebookLinksCount属性以返回int。虽然如果你真的需要一个字符串,你可以改变它。
public string NotebookLinksCount {
get {
return (NotebookLinksJSON != null) ?
NotebookLinksJSON.FromJSONString<Notebook.Link>().Details.Count.ToString() :
"0";
}
}
答案 1 :(得分:0)
只需使用return NotebookLinksJSON.FromJSONString<Notebook.Link>().Details.Count;
。
您无需在此处调用Extension
方法