如何将List<string>转换为List<int>?

212

我的问题是这个问题的一部分:

我从一个表单中收到了一组ID。我需要获取这些ID,并将它们转换为整数,然后从数据库中选择匹配的记录。

[HttpPost]
public ActionResult Report(FormCollection collection)
{
    var listofIDs = collection.AllKeys.ToList();  
    // List<string> to List<int>
    List<Dinner> dinners = new List<Dinner>();
    dinners= repository.GetDinners(listofIDs);
    return View(dinners);
}
15个回答

0

这将字符串数组转换为长整型数组。它返回成功转换的值的数量。

public static int strv_to_longv(string[] src, int src_offset, long[] dst, int dst_offset)
{
    int i = src_offset;
    int j = dst_offset;
    int ni = src.Length;
    int nj = dst.Length;
    while ((i < ni) && (j < nj))
    {
        j += long.TryParse(src[i], out dst[j]) ? 1 : 0;
        i++;
    }
    return j;
}

var line = "lemon 4 grape 1 garlic 77";
string[] words = line.Split(' ');
long[] longs = new long[10];
int l = strv_to_longv(words, 1, longs, 0);
//longs will be equal {4, 1, 77}
//l will be equal 3

0
intList = Array.ConvertAll(stringList, int.Parse).ToList();

0
yourEnumList.Select(s => (int)s).ToList()

1
嗨,Patryk。欢迎来到StackOverflow。如果您能写更多关于您发布的简洁解决方案的描述,那就更好了。这是对该网站上一个非常古老问题的回答,将会被多个用户审核。 - Aditya

0

你可以通过LINQ使用它

     var selectedEditionIds = input.SelectedEditionIds.Split(",").ToArray()
                            .Where(i => !string.IsNullOrWhiteSpace(i) 
                             && int.TryParse(i,out int validNumber))
                            .Select(x=>int.Parse(x)).ToList();

似乎使用TryParse很浪费,因为它会给你一个值,然后你却将该值抛弃掉,再进行一次Parse。实际上你是在进行双重解析。 - Ristogod

-1
  public List<int> ConvertStringListToIntList(List<string> list) 
  {
     List<int> resultList = new List<int>();
     for (int i = 0; i < list.Count; i++)
        resultList.Add(Convert.ToInt32(list[i]));

     return resultList;
  }

3
建议您在回答中添加一些文字解释,而不仅仅是提供代码。这样能够让回答更易懂。 - carlosfigueira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接