【发布时间】:2014-02-03 09:21:49
【问题描述】:
我有一个返回 List<DateTime> 的方法,但我在该方法中运行的代码给了我一个 List<string>
如何将List<string> 转换为List<DateTime> 用于我的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<DateTime>
我认为我可以使提供的答案适用于此代码。
谢谢!
【问题讨论】:
-
可能最好直接修改内部代码以生成
DateTime。向我们展示代码。 -
该代码不起作用(抱歉,它会编译,但您会在运行时收到 ArgumentOutOfRange 异常),您正在尝试使用索引器将新项目添加到通用列表中:
dateTaken[cnt] = ...但您可以't,看我的question -
@Selman22 谢谢!我最初在这个方法之外有一个循环,它只是一个一个地提取每个日期。但是我在运行时遇到了 ArgumentOutOfRange 异常,不知道为什么!!!我想我可以通过将循环放在方法中来解决这个问题
-
@teepee 使用 Add 方法,
dateTaken.Add(...) -
@Selman22 终于!非常感谢它成功了,这让我发疯了,我无法弄清楚
标签: c# methods type-conversion