我有一个具有以下格式数据的文本文件
[
{
"SponsorID": 1,
"FirstBAID": 7395836
},
{
"SponsorID": 2,
"FirstBAID": 3509279,
"SecondBAID": 2947210
},
{
"SponsorID": 3,
"FirstBAID": 1776294,
"SecondBAID": 6503843
},
{
"SponsorID": 4,
"FirstBAID": 8014528,
"SecondBAID": 6203155
},
{
"SponsorID": 5,
"FirstBAID": 5968769,
"SecondBAID": 7410195,
"ThirdBAID":8950170,
}
]
我想以列表形式读取此数据,然后需要按SponsorID进行查询。我已经创建了一个这样的课程
public class SponsorInfo
{
public decimal SponsorID { get; set; }
public decimal FirstBAID { get; set; }
public decimal SecondBAID { get; set; }
public decimal ThirdBAID { get; set; }
}
现在如何读取文本文件数据并绑定SponsorInfo类?
从NuGet程序包管理器控制台安装Newtonsoft.Json nuget程序包:
PM> Install-Package Newtonsoft.Json
然后:
var jsonText = File.ReadAllText("filepath");
var sponsors = JsonConvert.DeserializeObject<IList<SponsorInfo>>(jsonText);
要查询,SponsorID
您可以使用LINQ:
var sponsor5 = sponsors.FirstOrDefault(x => x.SponsorID == 5);
如果您经常需要通过查找SponsorID
,可以将结果转换为键为的字典SponsorID
。这将提高性能,因为它不需要为每个查找都对整个列表进行枚举。我也建议你改变的类型SponsorID
到int
代替decimal
。
var sponsorsById = sponsors.ToDictionary(x => x.SponsorID);
然后,您可以像这样轻松地访问它:
if (sponsorsById.ContainsKey(5))
var sponsor5 = sponsorsById[5];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句