如何在c#中计算一个集合中有多少个元素?
本文关键字:一个 集合 多少 元素 计算 | 更新日期: 2023-09-27 18:14:48
我的模型中有以下类:
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为空,那么我希望计数返回零。
Count
是一个属性。删除()
并将其命名为:
NotebookLinksJSON.FromJSONString<Notebook.Link>().Details.Count;
编辑:
在评论中回答@Melissa的问题:为了使它在NotebookLinksJSON
对象为空的情况下返回空,您需要进行空检查。
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";
}
}
就用return NotebookLinksJSON.FromJSONString<Notebook.Link>().Details.Count;
。
这里不需要调用Extension
方法