Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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# 从vb到c转换函数时遇到的问题_C#_Vb.net - Fatal编程技术网

C# 从vb到c转换函数时遇到的问题

C# 从vb到c转换函数时遇到的问题,c#,vb.net,C#,Vb.net,我正在尝试将自己迁移到只使用C的状态,我是一个vb.net的家伙 我在将vb.net函数从项目转换为C时遇到问题 Public Shared Function GetHolidays(ByVal holidaysFile As String) As List(Of Date) Dim sAllDates() As String = File.ReadAllLines(holidaysFile) Return (From sDate In sAllDates Select CDat

我正在尝试将自己迁移到只使用C的状态,我是一个vb.net的家伙 我在将vb.net函数从项目转换为C时遇到问题

Public Shared Function GetHolidays(ByVal holidaysFile As String) As List(Of Date)
    Dim sAllDates() As String = File.ReadAllLines(holidaysFile)
    Return (From sDate In sAllDates Select CDate(sDate)).ToList()
End Function
holidaysFile是一个文本文件,其中包含以下内容:

2015年1月1日 01/19/2015 02/16/2015 04/03/2015 05/25/2015 07/03/2015 09/07/2015 11/26/2015 2015年12月25日

感谢您的帮助,streamreader可能是阅读此内容的更好方式?

您可以这样做

public static List<DateTime> GetHolidays(string holidaysFile)
{
    string[] sAllDates = File.ReadAllLines(holidaysFile);
    return (from sDate in sAllDates select Convert.ToDateTime(sDate)).ToList();
}

这与原文相符:

public static List<DateTime> GetHolidays(string holidaysFile)
{
    return File.ReadAllLines(holidaysFile).Select(d => Convert.ToDateTime(d)).ToList();
}

一般来说,编写返回IEnumerable而不是列表的代码通常会更好。您不会有什么损失,因为您可以随时在需要时将.ToList追加到此类函数的末尾,从一种基础集合类型到另一种基础集合类型的更容易重构,以及通过减少RAM使用或避免循环列表中的项目来潜在的性能改进,这些都是您以后不需要的。

ty,如果可用,我会接受。在vb中是否有与工作日函数等效的C语言?我找不到。在c中使用.DayoFWeek返回一个int,其中vb函数返回DayoFWeek.Sunday等的枚举。此外,你可以很容易地将enum转换为int。是的,但我想如果已经有了等价物,为什么还要麻烦呢。泰
public static IEnumerable<DateTime> GetHolidays(string holidaysFile)
{
    return File.ReadLines(holidaysFile).Select(d => DateTime.Parse(d));
}