Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c中搜索日期并检查它是否存在于datetime数组中#_C# - Fatal编程技术网

C# 如何在c中搜索日期并检查它是否存在于datetime数组中#

C# 如何在c中搜索日期并检查它是否存在于datetime数组中#,c#,C#,我有一个DateTime数组,我想在其中插入某些日期。但在此之前,我想检查数组中是否已经存在日期。我无法在我的代码中使用包含或存在 for (int i = 0; i < TableFinal.Rows.Count; i++) { DateTime[] existingDates; if (dsCSV.Tables[0].Rows.Count > 0) { var previousRatingDate = TableFinal.Rows[i]

我有一个
DateTime
数组,我想在其中插入某些日期。但在此之前,我想检查数组中是否已经存在日期。我无法在我的代码中使用
包含
存在

for (int i = 0; i < TableFinal.Rows.Count; i++)
{
    DateTime[] existingDates;

    if (dsCSV.Tables[0].Rows.Count > 0)
    {
        var previousRatingDate = TableFinal.Rows[i]["RatingDate"];
        if (existingDates.Contains(previousRatingDate))
        {
           //if not then insert previousRatingDate into array
        }
    }
}
for(int i=0;i0)
{
var previousRatingDate=TableFinal.Rows[i][“RatingDate”];
if(existingDates.Contains(previousRatingDate))
{
//如果不是,则将previousRatingDate插入数组
}
}
}

制作
扩展方法
如下:

using System;
using System.Linq;
public static class Extensions 
{
    public static void Add<T>(this T[] _self, T item)
    {
        if(Array.IndexOf(_self, item)== -1)
        {
            Array.Resize(ref _self, _self.Length + 1);
            _self[_self.Length - 1] = item;
        }
    }
}

我希望它能对您有所帮助。

因此,在数组中循环,检查每个条目是否与您要查找的日期匹配。如果你找到了,就打破这个循环。到目前为止您尝试了什么?为什么不能使用
包含
存在
?这是家庭作业吗?请显示您尝试过的内容我不想使用循环,我已经在迭代中,我尝试将if条件应用于我的代码和使用过的数组。Contains和array.Exists,但其中没有一个适用于datetime数组。您可以使用
数组的
IndexOf
属性,如
数组。IndexOf(anyArray,value)
。如果索引大于-1,则表明它包含所述值,即您的案例中的日期。然后请使用
包含
存在
来显示条件,因为它们是正确的方法,谢谢。我尝试了此操作,但在if(!datesList.Any(item=>item==dateValue))运算符“==”不能应用于“datetime”和“object'@S.J.Lee”类型的操作数时出现错误。您必须将dateValue解析为
datetime
。像
(DateTime)dateValue
一样,我在这一行上得到这个异常var dateValue=(DateTime)TableFinal.Rows[i][“RatingDate”];例外情况:“指定的强制转换无效”@S.J.Lee数据表中
RatingDate
Type
是什么?@S.J.Lee如下尝试:
DateTime.ParseExact(TableFinal.Rows[i][“RatingDate”].ToString(),“yyyy-MM-dd HH:MM:ss,fff”,System.Globalization.CultureInfo.InvariantCulture)
DateTime[] existingDates= new DateTime[] { };
existingDates.Add<DateTime>(DateTime.Now);
var existingDates = new List<string>();
var previousRatingDate = TableFinal.Rows[i]["RatingDate"].ToString();

if (!existingDates.Any(item => item == previousRatingDate))
{
    existingDates.Add(previousRatingDate);
}