问题描述
我正在尝试通过id
过滤name
个连接,例如返回连接的id
,其中name
等于 12345678 。
我能够获取所有记录以及id
和name
的值。
但是,我只想归档它,例如我怎么只能得到记录id
等于 12345678 的记录name
?我在下面编写了代码(我知道这很愚蠢),并且返回了所有记录。
public class Alias
{
public string name { get; set; }
}
public class Connections
{
public Alias alias { get; set; }
public string id { get; set; }
}
public class RootObject
{
public List<Connections> connections { get; set; }
}
HttpClient hTTPClient = new HttpClient();
UserID = "12345678";
Uri getConnections = new Uri(string.Format("http://0.0.0.0:0000/getConnections"));
HttpResponseMessage restponseConnections = await hTTPClient.GetAsync(getConnections);
string contentConnections = await restponseConnections.Content.ReadAsstringAsync();
RootObject obj = JsonConvert.DeserializeObject<RootObject>(contentConnections);
foreach (Connections i in obj.connections)
{
if(!(i.alias.name == UserID))
{
Console.WriteLine(i.id);
}
}
JSON
{
"success": true,"connections": [
{
"typeName": "AF.ConnectionRecord"
"alias": {
"name": "12345678","imageUrl": null
},"endpoint": {
"did": null,"verkey": [
"6KZYwhxzxWcrZnQravocia2XHyoK9V8pBVT7nBdAd5JX"
],"uri": "http://0.0.0.0:0000"
},"state": 2,"id": "d0e4ccbf-5e2a-47bb-a218-78ea93a6066b","createdAtUtc": "2020-10-27T08:01:43.0724247","updatedAtUtc": "2020-10-27T08:01:45.7475196"
}
]
}
解决方法
使用LINQ
using System.Linq;
...
var list = obj.connections.Where(c => c.alias.name == "xyz").ToList();
,
在您要获得1条记录的情况下,建议您使用LINQ
using System.Linq;
//Rest of your code
var recId = obj.connections.Where(c => c.alias.name == "1234567").FirstOrDefault();