C# 论据1及;参数不能转换为';字符串';至';字符串[]和#x27;
出于某种原因,我在C代码中遇到的唯一编译错误是“[参数1](&参数2)无法在引用C# 论据1及;参数不能转换为';字符串';至';字符串[]和#x27;,c#,C#,出于某种原因,我在C代码中遇到的唯一编译错误是“[参数1](&参数2)无法在引用allDeliveries.Add(Delivery.newDelivery(trimmedKeys[I],values[I])时从“string”转换为“string[]”)。但是,在我的代码中定义的唯一字符串是交付时的属性,这些属性不会返回,而且也是私有的。因为我的程序中没有定义任何字符串,只有字符串数组,所以我不确定这是从哪里来的 public static List<Delivery> parse
allDeliveries.Add(Delivery.newDelivery(trimmedKeys[I],values[I])时从“string”转换为“string[]”)代码>。但是,在我的代码中定义的唯一字符串是交付时的属性,这些属性不会返回,而且也是私有的。因为我的程序中没有定义任何字符串,只有字符串数组,所以我不确定这是从哪里来的
public static List<Delivery> parseKey(string[] placeHolder, string[] keys)
{
List<Delivery> allDeliveries = new List<Delivery>();
string[] trimmedKeys = new string[keys.Length];
string[] values = new string[placeHolder.Length];
for (int i = 0; i < keys.Length; i++)
{
trimmedKeys[i] = keys[i].Trim();
values[i] = placeHolder[i];
Delivery delivery = new Delivery();
allDeliveries.Add(Delivery.newDelivery(trimmedKeys[i], values[i]));
}
return allDeliveries;
}
公共静态列表parseKey(字符串[]占位符,字符串[]键)
{
List allDeliveries=新列表();
string[]trimmedKeys=新字符串[keys.Length];
字符串[]值=新字符串[placeHolder.Length];
for(int i=0;i
我的整个程序的代码是:
static void Main(string[] args)
{
List<Delivery> deliveries = new List<Delivery>();
string[] doesntwork = new string[5];
Delivery thing = new Delivery()
thing = Delivery.newDelivery(doesntwork, doesntwork);
deliveries = Parse.parseDeliveries(@"C:\Users\owner\Documents\Visual Studio 2015\TIY\Week-1-Day-4\planet_express_logs.csv");
Delivery Delivery1 = deliveries[1];
Console.WriteLine(deliveries.Count);
Console.ReadLine();
}
}
public class Delivery
{
private String destination { get; set; }
private String itemDelivered { get; set; }
private String pilot { get; set; }
private int numberOfCrates;
private double moneyMade { get; set; }
private DateTime orderCreatedOn { get; set; }
//public int numberOfCrates
//{
// get { return _numberOfCrates; }
// set { this.numberOfCrates = value; }
//}
public static Delivery newDelivery(string[] keys, string[] values)
{
Delivery aDelivery = new Delivery();
for (int i = 0; i < keys.Length; i++)
{
if (keys[i].ToLower() == "what got shipped")
aDelivery.itemDelivered = values[i];
if (keys[i].ToLower() == "number of crates")
aDelivery.numberOfCrates = Convert.ToInt32(values[i]);
if (keys[i].ToLower() == "money we made")
aDelivery.moneyMade = Convert.ToDouble(values[i]);
if (keys[i].ToLower() == "order created on")
aDelivery.orderCreatedOn = Convert.ToDateTime(values[i]);
if (keys[i].ToLower() == "destination")
{
aDelivery.destination = keys[i];
if (keys[i].ToLower() == "earth")
{
aDelivery.pilot = "Fry";
continue;
}
if (keys[i].ToLower() == "mars")
{
aDelivery.pilot = "Amy";
continue;
}
if (keys[i].ToLower() == "uranus")
{
aDelivery.pilot = "Bender";
continue;
}
else
aDelivery.pilot = "Leela";
}
}
Console.WriteLine("{0} {1} {2} {3}", aDelivery.destination, aDelivery.numberOfCrates, aDelivery.moneyMade, aDelivery.itemDelivered);
return aDelivery;
}
// use this to print out data
// implement class and inheritance
// pilots and their deliveries
}
public class Parse // change to private and enable strings
{ // keep all parsing things in here
public static List<Delivery> parseDeliveries(string file)
{
bool firstLine = true;
List<Delivery> allDeliveries = new List<Delivery>();
string[] fileContents = System.IO.File.ReadAllLines(@file);
string[] keys = new string[fileContents.Length], values = new string[fileContents.Length];
foreach (String line in fileContents)
{
if (firstLine)
{
keys = line.Split(',');
firstLine = false;
continue;
}
values = line.Split(',');
allDeliveries.AddRange(parseKey(keys, values));
}
return allDeliveries;
}
public static List<Delivery> parseKey(string[] placeHolder, string[] keys)
{
List<Delivery> allDeliveries = new List<Delivery>();
string[] trimmedKeys = new string[keys.Length];
string[] values = new string[placeHolder.Length];
for (int i = 0; i < keys.Length; i++)
{
trimmedKeys[i] = keys[i].Trim();
values[i] = placeHolder[i];
Delivery delivery = new Delivery();
allDeliveries.Add(Delivery.newDelivery(trimmedKeys[i], values[i]));
}
return allDeliveries;
}
}
static void Main(字符串[]args)
{
列表交付=新列表();
string[]DoesNetwork=新字符串[5];
交付物=新交付物()
thing=Delivery.newDelivery(doesnetwork,doesnetwork);
deliveries=Parse.parseDeliveries(@“C:\Users\owner\Documents\Visual Studio 2015\TIY\Week-1-Day-4\planet\u express\u logs.csv”);
交货交货期1=交货期[1];
控制台.WriteLine(deliveries.Count);
Console.ReadLine();
}
}
公共课堂教学
{
私有字符串目标{get;set;}
私有字符串{get;set;}
私有字符串导频{get;set;}
私人集装箱;
私人双重货币{get;set;}
私有DateTime orderCreatedOn{get;set;}
//公共国际号码箱
//{
//获取{return\u numberOfCrates;}
//设置{this.numberOfCrates=value;}
//}
公共静态传递newDelivery(字符串[]键,字符串[]值)
{
交付交付=新交付();
for(int i=0;i
}
将两个字符串[]
作为参数trimmedkey[i]
和值[i]
都是string
,而不是string[]
将两个字符串[]
作为参数trimmedKeys[i]
和value[i]
都是string
,而不是string[]
实际上,trimmedKeys[i]
的类型是什么?newDelivery()
的第一个参数应该是string[]
而不是string
确实,trimmedKeys[i]的类型是什么
?newDelivery()
的第一个参数应该是字符串[]
,而不是字符串
public static Delivery newDelivery(string[] keys, string[] values)