将字符串列表转换为自定义列表

时间:2018-02-20 03:27:58

标签: c# linq c#-4.0

我正在尝试拨打网络服务,然后点击路障。

这是一个片段,我在控制台应用程序中调用所述Web服务进行测试(这有效):

        WSProxy.CancelOrderClient x = new CancelOrderClient(); 
        WSProxy.OrderCancelObject y = new OrderCancelObject(); 

        var z = new List<OrderNumberObject>();
        var p = new OrderNumberObject();
        p.OrderNumber = "100";
        z.Add(p);

        y.OrderNumberTbl = z.ToArray();
        y.StoreNumber = "700";

        var a = x.CancelOrder(y);
        Console.WriteLine(a.ExResultMessage.Message);
        Console.WriteLine(a.ExResultMessage.Code);
        Console.ReadLine();

我想把它放在一个单独的静态方法中,输入对于订单号是List<string>,对于StoreNumber是一个字符串。

每个OrderNumberObject只有一个字符串属性,即OrderNumber ,其类型为string

鉴于此上下文,我不知道如何将List<string>转换/转换为List<OrderNumberObject>,其中OrderNumberObject具有名为OrderNumber的属性。

我们如何做到这一点?不幸的是,我没有自由修改我试图打电话的上述网络服务。

希望这解释了我正在尝试做的事情。谢谢。

2 个答案:

答案 0 :(得分:2)

        var SomeListOfStrings = new List<string>(); //The list of strings that you received from your service call or whatever. I just created it here, but you would have got it from somewhere... 

        var orderNumbers = new List<OrderNumberObject>();

        foreach (var str in SomeListOfStrings)
        {
            //I am assuming the order number is a string property. 
            orderNumbers.Add(new OrderNumberObject {OrderNumber=str});
        }

如果OrderNumberObject.OrderNumber是一个字符串,我不相信您需要进行任何转换,因为您正在接收字符串并将其存储为字符串。

答案 1 :(得分:2)

由于您添加了linq标记,请尝试以下内容:

ListOfStrings.Select(s => new OrderNumberObject() { OrderNumber=s}).ToList();

编辑:

(from s in ListOfStrings
 select new OrderNumberObject() {OrderNumber = s}
).ToList();