繁体   English   中英

无法隐式转换类型System.Collections.Generic.List <char>

[英]cannot implicitly convert type System.Collections.Generic.List<char>

我正在尝试创建从Json调用中获取的客户名称列表,但出现错误:

无法将类型System.Collections.Generic.List<char>隐式转换为System.Collections.Generic.List<string>

我正在使用这两个类:

顾客:

namespace eko_app
{
    static class Customers
    {
        public static List<CustomerResponse> GetCustomers(string customerURL)
        {
            List<CustomerResponse> customers = new List<CustomerResponse>();

            try
            {
                var w = new WebClient();
                var jsonData = string.Empty;

                // make the select products call
                jsonData = w.DownloadString(customerURL);

                if (!string.IsNullOrEmpty(jsonData))
                {
                    // deserialize the json to c# .net
                    var response = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(jsonData);

                    if (response != null)
                    {
                        customers = response.response;
                    }
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            return customers;
        }

        public class BusinessAssociate
        {
            public string business_associate_id { get; set; }
            public string created_by { get; set; }
            public DateTime created { get; set; }
            public DateTime modified { get; set; }
            public bool? deleted { get; set; }
            public string business_id { get; set; }
            public string identity_id { get; set; }
            public string associate_type { get; set; }
            public string name { get; set; }
        }

        public class Identity
        {
            public string identity_id { get; set; }
            public string created_by { get; set; }
            public DateTime created { get; set; }
            public DateTime modified { get; set; }
            public bool? deleted { get; set; }
            public string name { get; set; }
            public object identity_type { get; set; }
        }

        public class ChartOfAccount
        {
            public string chart_of_accounts_id { get; set; }
            public DateTime created { get; set; }
            public DateTime modified { get; set; }
            public string created_by { get; set; }
            public string deleted { get; set; }
            public string account_id { get; set; }
            public string account_name { get; set; }
            public string business_id { get; set; }
            public string account_category { get; set; }
            public string accounts_groups_id { get; set; }
            public string cash_equivalent { get; set; }
            public string acc_category { get; set; }
            public decimal? balance { get; set; }
            public decimal? credit_balance { get; set; }
            public decimal? debit_balance { get; set; }
            public decimal? absolute_balance { get; set; }
            public string balance_type { get; set; }
            public decimal? raw_balance { get; set; }
            public string extended_name { get; set; }
            public string normal_balance_type { get; set; }
        }

        public class CustomerResponse
        {
            public BusinessAssociate BusinessAssociate { get; set; }
            public Identity Identity { get; set; }
            public ChartOfAccount ChartOfAccount { get; set; }
        }

        public class Messages
        {
            public string msgs { get; set; }
            public string errs { get; set; }
        }

        public class RootObject
        {
            public List<CustomerResponse> response { get; set; }
            public Messages messages { get; set; }
        }
    }
}

主页表格:

 private void GetCustomerNameList()
        {
            // get customers
            customerURL = "https://eko-app.com/BusinessAssociate/list_associates/1/sessionId:" + sessionID + ".json";

            var customers = Customers.GetCustomers(customerURL);

            List<string> customerNames = new List<string>();

            foreach (var c in customers)
            {
                customerNames = c.BusinessAssociate.name.ToList(); <--------error thrown here
            }
        }

该错误引发于customerNames = c.BusinessAssociate.name.ToList(); 在HomeForm上。

创建客户名称列表时我做错了什么?

我认为您想添加所有Customer.BusinessAssociate名称以列出:

foreach (var c in customers)
{
    customerNames.Add(c.BusinessAssociate.name);
}

您最初编写的内容将每个name string转换为char list

您正在将一个字符列表分配给一个字符串列表。 foreach循环之外尝试以下操作:

customerNames = customers.Select(x => x.BusinessAssociate.name).ToList();

这也使cutomerNames的初始化变得多余。

代替foreach使用:
customerNames = customers.Select(c => c.BusinessAssociate.name).ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM