【问题标题】:List<string> to List<DateTime>列表<字符串> 到列表<日期时间>
【发布时间】:2014-02-03 09:21:49
【问题描述】:

我有一个返回 List&lt;DateTime&gt; 的方法,但我在该方法中运行的代码给了我一个 List&lt;string&gt;

如何将List&lt;string&gt; 转换为List&lt;DateTime&gt; 用于我的return 行?

它基本上是一种接收照片列表并返回其日期的拍摄属性列表的方法;

            //retrieves the datetime WITHOUT loading the whole image
    public List<DateTime> GetDateTakenFromImage(List<string> path)
    {
        List<string> dateTaken = new List<string>();
        int cnt = 0;
        while (cnt < path.Count())
        {


            using (FileStream fs = new FileStream(path[cnt], FileMode.Open, FileAccess.Read))
            using (Image myImage = Image.FromStream(fs, false, false))
            {

                PropertyItem propItem = myImage.GetPropertyItem(36867);
                dateTaken[cnt] = r.Replace(Encoding.UTF8.GetString(propItem.Value), "-", 2);
            }
            cnt++;
        }

        return dateTaken;

我从网站上得到了这个代码,所以我不完全确定我是否可以让它返回给List&lt;DateTime&gt;

我认为我可以使提供的答案适用于此代码。

谢谢!

【问题讨论】:

  • 可能最好直接修改内部代码以生成DateTime。向我们展示代码。
  • 该代码不起作用(抱歉,它会编译,但您会在运行时收到 ArgumentOutOfRange 异常),您正在尝试使用索引器将新项目添加到通用列表中:dateTaken[cnt] = ... 但您可以't,看我的question
  • @Selman22 谢谢!我最初在这个方法之外有一个循环,它只是一个一个地提取每个日期。但是我在运行时遇到了 ArgumentOutOfRange 异常,不知道为什么!!!我想我可以通过将循环放在方法中来解决这个问题
  • @teepee 使用 Add 方法,dateTaken.Add(...)
  • @Selman22 终于!非常感谢它成功了,这让我发疯了,我无法弄清楚

标签: c# methods type-conversion


【解决方案1】:

假设字符串格式正确:

List<DateTime> dateTimeList = new List<DateTime>();

foreach (string s in stringList)
    dateTimeList.Add(Convert.ToDateTime(s));

 return dateTimeList;

http://msdn.microsoft.com/en-us/library/cc165448.aspx

【讨论】:

    【解决方案2】:

    如果您知道所有字符串都会正确解析为 DateTime,您可以执行以下操作:

    List<string> strings = new List<string>() { "2014-01-14" };
    
    List<DateTime> dates = strings.Select(date => DateTime.Parse(date)).ToList();
    

    【讨论】:

    • +1 这是一个比我想象的更优雅的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多