Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 论据1及;参数不能转换为';字符串';至';字符串[]和#x27;_C# - Fatal编程技术网

C# 论据1及;参数不能转换为';字符串';至';字符串[]和#x27;

C# 论据1及;参数不能转换为';字符串';至';字符串[]和#x27;,c#,C#,出于某种原因,我在C代码中遇到的唯一编译错误是“[参数1](&参数2)无法在引用allDeliveries.Add(Delivery.newDelivery(trimmedKeys[I],values[I])时从“string”转换为“string[]”)。但是,在我的代码中定义的唯一字符串是交付时的属性,这些属性不会返回,而且也是私有的。因为我的程序中没有定义任何字符串,只有字符串数组,所以我不确定这是从哪里来的 public static List<Delivery> parse

出于某种原因,我在C代码中遇到的唯一编译错误是“[参数1](&参数2)无法在引用
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)