【问题标题】:Assigning to a List in C#在 C# 中分配给列表
【发布时间】:2017-10-20 17:38:14
【问题描述】:

我正在尝试将值分配给 C# 中的列表。我有以下课程:

public class Request
{
    public string firstName { get; set; }
    public string lastName { get; set; }
    public string email { get; set; }
    public List<Service> services { get; set; }

}
public class Service
{
    public string sku { get; set; }
    public string did { get; set;}
}

我在控制器中使用以下代码:

    public async Task<IHttpActionResult> GetCases()
    {
        var client = await 
        SalesforceService.GetUserNamePasswordForceClientAsync();

        //Select All Cases Where Status = New.
        var cases = await client.QueryAsync<Case>("SELECT Id,
        Description FROM Case Where Status='New'");
        var sfCases = cases.Records.Select(c => new
        {
            c.Description
        });

        List<Request> requestresults = new List<Request>();
        foreach (var c in sfCases)
        {

            var sfrequest = new Request();
            if (c.Description != null)
            {
                string[] descriptionline = null;

                sfrequest.Description = c.Description;

                descriptionline = Regex.Split(c.Description, "\r\n");

                if (descriptionline.Any(x => x.Contains("FirstName")))
                {
                    var firstnameindex = Array.FindIndex(descriptionline, row => row.Contains("FirstName"));
                    sfrequest.firstName = descriptionline[firstnameindex].Replace("FirstName - ", "");

                    var lastnameindex = Array.FindIndex(descriptionline, row => row.Contains("LastName"));
                    sfrequest.lastName = descriptionline[lastnameindex].Replace("LastName - ", "");

                    var emailindex = Array.FindIndex(descriptionline, row => row.Contains("Email"));
                    sfrequest.email = descriptionline[emailindex].Replace("Email - ", "");

                    var skuindex = Array.FindIndex(descriptionline, row => row.Contains("sku"));

如何获取 skudid 并按照与其他属性相同的方式分配它们?

【问题讨论】:

  • 您的问题到底在哪里?在代码中突出显示它..
  • 欢迎来到 Stack Overflow!提问时,请尝试以Minimal complete and verifiable 举例说明您的问题。现在你有很多代码可能与这个问题没有太大关系。正如上面的@Coding 所述,目前尚不清楚问题所在。这并不容易,但它是使用软件的一部分。

标签: c# asp.net-web-api


【解决方案1】:

由于您的请求类包含一个名为 services 的列表,您可以简单地访问以下服务的值:

services.sku
services.did

在您的源代码中,我假设您会像这样使用它:

var skuindex = Array.FindIndex(descriptionline, row => row.Contains("sku"));
sfrequest.services.sku = descriptionline[skuindex].Replace("Sku - ", "");

var didindex = Array.FindIndex(descriptionline, row => row.Contains("did"));
sfrequest.services.did = descriptionline[didindex].Replace("Did - ", "");

另外我必须指出两点:
- 确保services-变量在您尝试访问它时被初始化,否则您会遇到异常。
- 建议使用大写的属性名称的第一个字母。您使用的符号通常用于字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 2016-02-14
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 2021-08-19
    相关资源
    最近更新 更多