c# - 为什么我得到列表的最后一个元素?
问题描述
这是获取请求
var destname = textBox1.Text;
var client1 = new RestClient("https://skyscanner-skyscanner-flight-search-v1.p.rapidapi.com/apiservices/autosuggest/v1.0/UK/GBP/en-GB/?query=" + destname);
var request1 = new RestRequest(Method.GET);
request1.AddHeader("x-rapidapi-key", "");
request1.AddHeader("x-rapidapi-host", "skyscanner-skyscanner-flight-search-v1.p.rapidapi.com");
IRestResponse response1 = client1.Execute(request1);
var results = JsonConvert.DeserializeObject<DestinationName>(response1.Content);
这是课程
public partial class Place1
{
public string PlaceId { get; set; }
public string PlaceName { get; set; }
public string CountryId { get; set; }
public string RegionId { get; set; }
public string CityId { get; set; }
public string CountryName { get; set; }
}
public partial class DestinationName
{
public List<Place1> Places { get; set; }
}
当我做下面的事情时,我应该得到 ES-sky,它是列表的第一个元素,但由于某种原因,它给了我列表的最后一个元素。
foreach (var a in results.Places)
{
label1.Text = a.PlaceId;
}
这是清单
ES-sky
BCN-sky
ALC-sky
AGP-sky
MAD-sky
PMI-sky
IBZ-sky
TENE-sky
TFS-sky
TFN-sky
我将如何调整代码以使我的输出是 ES-sky 而不是 TFN-sky。
解决方案
您正在遍历列表,每次将其写入“label1.Text”的值。使用 SingleOrDefault()/FirstOrDefault()。不要使用 foreach 循环。
例子:
var firstValue=results.Places.FirstOrDefault(); label1.Text = firstValue.PlaceId;
推荐阅读
- android - 如何在 Android 中将 RecyclerView 用于另一个 RecyclerView 的适配器?
- html - 如何居中对齐下拉列表
- powershell - 如何在 Excel 中循环以将 GPO 列表应用于 Powershell 中的 OU
- reactjs - 如何在componentDidMount之后初始化React Materialize下拉
- javascript - 在 openlayers 上添加标记会给出“未捕获的类型错误:无法读取未定义的属性 'addLayer'”
- java - 同一个实例的同步块和同步方法
- javascript - 转义对象的属性值动态引用
- kubernetes - Kubernetes仪表板安装给出x509:证书由未知权限错误签名
- python - 调整 Keras 中的隐藏层数
- excel - 使用复选框隐藏和取消隐藏行的 Vba 代码