我有两个列表,用于存储时间戳。但是,两个列表中的格式不同,ListA将其存储为07/27/2015 18:10:14
,而ListB将其存储为12:33
。我的目标是搜索两个列表并匹配时间戳并输出它们。通过相同的时间戳,我的意思是..
让我们说列表A和列表B具有以下元素......
List A: List B:
07/27/2015 18:10:14 18:11
07/29/2015 18:20:45 18:20
07/29/2015 18:20:11 19:23
07/11/2015 18:21:23 20:45
请注意,ListB不包含秒信息,但列表A包含秒信息。我希望输出格式如下:
07/29/2015 18:20:45 18:20
07/29/2015 18:20:11
目前,我可以执行搜索,但只能在结果中包含ListA中的一个时间戳。我想包括所有。任何帮助将不胜感激!
我的尝试如下:
for (int i = 0; i < ListA.Count(); i++)
{
for (int j = 0; j < ListB.Count(); j++)
{
if (ListA[i].Substring[11,5] == ListB[j])
{
Console.WriteLine("Match Found");
}
}
}
EDIT ::
List A: List B:
07/27/2015 18:10:14 18:11
07/29/2015 18:20:45 20:45
07/29/2015 18:20:11 19:23
07/11/2015 18:21:23 18:20
答案 0 :(得分:2)
通过将它们解析回DateTime对象并从每个对象中获取小时和分钟,您可以准确地比较它们
for (int i = 0; i < ListA.Count(); i++)
{
bool found = false;
for (int j = 0; j < ListB.Count(); j++)
{
DateTime aItem = DateTime.ParseExact(ListA[i], "MM/dd/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
DateTime bItem = DateTime.ParseExact(ListB[j], "HH:mm", System.Globalization.CultureInfo.InvariantCulture);
if (aItem.ToString("HH:mm") == bItem.ToString("HH:mm"))
{
if (!found)
{
Console.WriteLine("{0} {1}", ListA[i], ListB[j]);
found = true;
}
else
Console.WriteLine(ListA[i]);
}
}
}
编辑:抱歉,我完全误读了您的问题