C# 从文本文件中读取行并添加到列表<;字符串>;

C# 从文本文件中读取行并添加到列表<;字符串>;,c#,windows,C#,Windows,我在一个项目中工作,我需要读取.txt文件中的行并将这些行放入列表中 在我的第一个原型WPF中,我使用了以下非常简单的代码: private static List<string> fileLines = File.ReadAllLines("WordList.txt").ToList(); private static List fileLines=File.ReadAllLines(“WordList.txt”).ToList(); 然而,现在我在Windows Phone

我在一个项目中工作,我需要读取.txt文件中的行并将这些行放入列表中

在我的第一个原型WPF中,我使用了以下非常简单的代码:

private static List<string> fileLines = File.ReadAllLines("WordList.txt").ToList();
private static List fileLines=File.ReadAllLines(“WordList.txt”).ToList();
然而,现在我在Windows Phone 8.1版本上工作,我不能用这种方式

目前,我的研究得出以下代码,但没有成功:

public static List<string> fileLines = LoadingLines();

public static async Task<List<string>> LoadingLines()
{
    StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
    StorageFile sampleFile = await storageFolder.GetFileAsync("WordList.txt");
    IList<string> text = await Windows.Storage.FileIO.ReadLinesAsync(sampleFile);

    return text;
}
publicstaticlist fileLines=LoadingLines();
公共静态异步任务加载行()
{
StorageFolder StorageFolder=Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile sampleFile=Wait storageFolder.GetFileAsync(“WordList.txt”);
IList text=wait Windows.Storage.FileIO.ReadLinesAsync(sampleFile);
返回文本;
}
我在这段代码中遇到的一些问题是,我不知道这是否会返回一个列表,其中文件的每一行都是一个元素,如果我尝试将任务>类型分配给列表,我会出现以下错误:错误2无法将类型“System.Threading.Tasks.Task>”隐式转换为“System.Collections.Generic.List”

也许这个代码完全不符合我的要求。同样,我需要的是在我打包的应用程序中读取一个.txt文件,并在fileLines列表的元素中旋转每一行。显然,之后,我需要从方法中访问此列表。

根据调用
ReadLinesAsync
将返回
IAsyncOperation
,即当您等待它时,这将返回一个
IVector
。对于这种类型,文档说明:

表示元素的随机访问集合。网络:这个 接口在.NET代码中显示为
System.Collections.Generic.IList
由于.NET语言投影。在任何情况下,Windows运行时 类型已实现IVector,.NET代码可以使用的API
IList

因此,代码中的这一行应该可以正常工作

IList<string> text = await Windows.Storage.FileIO.ReadLinesAsync(sampleFile);
使用方法返回的结果时,还必须使用
wait
关键字,因此此行:

public static List<string> fileLines = LoadingLines();
public static List<string> fileLines = LoadingLines();
并将其替换为:

private readonly static Task<List<string>> loadLinesTask = LoadingLines();

public static async Task<List<string>> GetLinesAsync()
{
    return await _loadLinesTask.ConfigureAwait(false);
}
1有更好的方法可以做到这一点,但讨论这一点将超出此问题的范围。

根据调用
ReadLinesAsync
将返回
IAsyncOperation
,即当您等待它时,这将返回一个
IVector
。对于这种类型,文档说明:

表示元素的随机访问集合。网络:这个 接口在.NET代码中显示为
System.Collections.Generic.IList
由于.NET语言投影。在任何情况下,Windows运行时 类型已实现IVector,.NET代码可以使用的API
IList

因此,代码中的这一行应该可以正常工作

IList<string> text = await Windows.Storage.FileIO.ReadLinesAsync(sampleFile);
使用方法返回的结果时,还必须使用
wait
关键字,因此此行:

public static List<string> fileLines = LoadingLines();
public static List<string> fileLines = LoadingLines();
并将其替换为:

private readonly static Task<List<string>> loadLinesTask = LoadingLines();

public static async Task<List<string>> GetLinesAsync()
{
    return await _loadLinesTask.ConfigureAwait(false);
}
1有更好的方法可以做到这一点,但讨论这一点将超出此问题的范围。

根据调用
ReadLinesAsync
将返回
IAsyncOperation
,即当您等待它时,这将返回一个
IVector
。对于这种类型,文档说明:

表示元素的随机访问集合。网络:这个 接口在.NET代码中显示为
System.Collections.Generic.IList
由于.NET语言投影。在任何情况下,Windows运行时 类型已实现IVector,.NET代码可以使用的API
IList

因此,代码中的这一行应该可以正常工作

IList<string> text = await Windows.Storage.FileIO.ReadLinesAsync(sampleFile);
使用方法返回的结果时,还必须使用
wait
关键字,因此此行:

public static List<string> fileLines = LoadingLines();
public static List<string> fileLines = LoadingLines();
并将其替换为:

private readonly static Task<List<string>> loadLinesTask = LoadingLines();

public static async Task<List<string>> GetLinesAsync()
{
    return await _loadLinesTask.ConfigureAwait(false);
}
1有更好的方法可以做到这一点,但讨论这一点将超出此问题的范围。

根据调用
ReadLinesAsync
将返回
IAsyncOperation
,即当您等待它时,这将返回一个
IVector
。对于这种类型,文档说明:

表示元素的随机访问集合。网络:这个 接口在.NET代码中显示为
System.Collections.Generic.IList
由于.NET语言投影。在任何情况下,Windows运行时 类型已实现IVector,.NET代码可以使用的API
IList

因此,代码中的这一行应该可以正常工作

IList<string> text = await Windows.Storage.FileIO.ReadLinesAsync(sampleFile);
使用方法返回的结果时,还必须使用
wait
关键字,因此此行:

public static List<string> fileLines = LoadingLines();
public static List<string> fileLines = LoadingLines();
并将其替换为:

private readonly static Task<List<string>> loadLinesTask = LoadingLines();

public static async Task<List<string>> GetLinesAsync()
{
    return await _loadLinesTask.ConfigureAwait(false);
}
有更好的方法可以做到这一点,但讨论这一点将超出这个问题的范围

  • 将文本文件添加到项目中。右键单击它,选择Properties并将action属性设置为“embedded resource”

  • 按如下方式访问它。资源名称是完全限定名称,这意味着包含名称空间。(例如—“MyCompany.Project.resources.fileName.txt”)

    var list=newlist();
    var assembly=assembly.getExecutionGassembly();
    var resourceName=“XYZ.ABC.Resources.MyTextFile.txt”;
    使用(Stream=assembly.GetManifestResourceStream(resourceName))
    使用(StreamReader=新StreamReader(stream))
    {
    而(!reader.EndOfStream)
    {
    list.Add(reader.ReadLine());
    }
    }
    退货清单;
    
  • 将文本文件添加到项目中。右键单击它,选择Properties并将action属性设置为“embedded resource”

  • 按如下方式访问它。资源名称是完全限定名称,这意味着包含名称空间。(例如—“MyCompany.Project.resources.fileName.txt”)

    var list=newlist();
    var assembly=assembly.getExecutionGassembly();
    var resourceName=“XYZ.ABC.Resources.MyTextFile.txt”;
    使用(Stream=assembly.GetMani)