using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using RestSharp;
namespace Words
{
public partial class FormWords : Form
{
private RestClient client;
RestRequest request;
public FormWords()
{
InitializeComponent();
}
public class RootObject
{
public double lng { get; set; }
public double lat { get; set; }
}
private void textBoxSearch_TextChanged(object sender, EventArgs e)
{
client = new RestClient("http://localhost:8080");
request = new RestRequest("/searchaddr");
request.AddParameter("addr", textBoxSearch.Text);
IRestResponse<RootObject> searchResponse = client.Execute<RootObject>(request);
comboBoxSearch.Show();
comboBoxSearch.Items.Clear();
**foreach (var results in searchResponse.Data.lat && searchResponse.Data.lng)**
{
comboBoxSearch.Items.Add(results.suggestion.ToString());
comboBoxSearch.DroppedDown = true;
}
}
}
}
感谢您抽出宝贵时间阅读本文。 我试图在我的API中返回多个预期结果:
我知道你不是这样做的,但是有没有人建议让我可以在结果中返回lat和lng?
答案 0 :(得分:1)
这就是你要追求的吗?将lat和lng的结果附加到组合框项目中?
comboBoxSearch.DroppedDown = true;
foreach (var result in searchResponse.Data.lat)
{
comboBoxSearch.Items.Add(result.suggestion.ToString());
}
foreach (var result in searchResponse.Data.lng)
{
comboBoxSearch.Items.Add(result.suggestion.ToString());
}
答案 1 :(得分:1)
C#中的语法searchResponse.Data.lat && searchResponse.Data.lng
不正确。你可能意味着两件事之一,它们都可以用LINQ来处理:
枚举一个列表,然后通过下一个
使用Enumerable.Concat
:
searchResponse.Data.lat.Concat(searchResponse.Data.lng)
通过两个列表并行枚举
使用Enumerable.Zip
:
searchResponse.Data.lat.Zip(searchResponse.Data.lng, (lat, lng) => new { lat, lng })
答案 2 :(得分:0)
所以我没有使用ToString()函数我犯了一个错误:
var result = searchResponse.Data.lat.ToString();
{
textBoxLat.Text = result.ToString();
}
var result1 = searchResponse.Data.lng.ToString();
{
textBoxLng.Text = result1.ToString();