我在 https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml 运行了来自 MS 的代码 它使用 linq 从 json 文件中检索记录
这是循环
var ipList =
from v in values
where tag.Equals((string)v["name"], StringComparison.OrdinalIgnoreCase)
select v["properties"]["addressPrefixes"];
这是 json 文件的第一部分
{
"changeNumber": 294,
"cloud": "Public",
"values": [
{
"name": "ActionGroup",
"id": "ActionGroup",
"properties": {
"changeNumber": 39,
"region": "",
"regionId": 0,
"platform": "Azure",
"systemService": "ActionGroup",
"addressPrefixes": [
"4.145.74.52/30",
"4.149.254.68/30",
"4.150.239.212/30",
"4.151.103.92/30",
我需要添加 v["id"] == "AzureDevOps" 所以我就这么做了
var ipList =
from v in values
where tag.Equals((string)v["name"], StringComparison.OrdinalIgnoreCase) && (string)v["id"] == "AzureDevOps"
select v["properties"]["addressPrefixes"]
;
它什么也不返回。难道是我的添加有误?我尝试在命令窗口中查看 (string)v["id"] == "AzureDevOps" 的值,但它不允许并且无法在变量中看到它。
感谢您的帮助
我对您的查询做了一些更改。试试这个,
var ipList =
from v in values
where tag.Equals((string)v["name"], StringComparison.OrdinalIgnoreCase)
&& "AzureDevOps".Equals((string)v["id"], StringComparison.OrdinalIgnoreCase)
select v["properties"]["addressPrefixes"];