如何在我的foreach循环中返回多个结果

时间:2017-01-04 11:37:21

标签: c# foreach

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?

3 个答案:

答案 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();