C# 从文本文件中读取行并添加到列表<;字符串>;
我在一个项目中工作,我需要读取.txt文件中的行并将这些行放入列表中 在我的第一个原型WPF中,我使用了以下非常简单的代码: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
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);
}
有更好的方法可以做到这一点,但讨论这一点将超出这个问题的范围
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());
}
}
退货清单;
var list=newlist();
var assembly=assembly.getExecutionGassembly();
var resourceName=“XYZ.ABC.Resources.MyTextFile.txt”;
使用(Stream=assembly.GetMani)