impossible de convertir implicitement le type de Système.Les Collections.Génériques.List<char>
Je suis en train de créer une liste de noms de client qui est récupérée à partir d'un appel Json mais j'obtiens une erreur:
impossible de convertir implicitement le type
System.Collections.Generic.List<char>
pourSystem.Collections.Generic.List<string>
Je suis à l'aide de ces 2 classes:
Clients:
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; }
}
}
}
HomeForm:
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
}
}
L'erreur est levée à customerNames = c.BusinessAssociate.name.ToList();
sur le HomeForm.
Ce que je fais mal dans la création d'une liste de noms de client?
InformationsquelleAutor Kinyanjui Kamau | 2013-11-21
Vous devez vous connecter pour publier un commentaire.
Je pense que vous vouliez ajouter tous les
Customer.BusinessAssociate
noms à la liste:Ce que vous avez écrit à l'origine converti chaque
name string
àchar list
.Vous êtes l'affectation d'une liste de caractères (string) dans une liste de chaînes de caractères.
Essayez quelque chose comme ça en dehors de la
foreach
boucle:Cela rend également l'initialisation de cutomerNames redondant.
Au lieu de
foreach
utilisation:customerNames = customers.Select(c => c.BusinessAssociate.name).ToList();