如何从Xamarin Forms中的分隔文本文件(csv)中读取

时间:2018-01-16 01:25:50

标签: c# xamarin xamarin.forms

我有一个由“|”分隔的csv (bc我的价值观中有逗号)。我将文件导入PCL并将其构建设置为嵌入式资源,但我不清楚如何读取此文件并分隔它等等。我已经找到了在线执行此操作的示例,但总是缺少某些功能,如功能未定义的或不属于Xamarin Forms的.NET的函数。因此,如果有人可以输入一个非常简单的循环来读取csv,用|分隔,并将值放入数组中,那就太棒了。非常感谢!

1 个答案:

答案 0 :(得分:0)

在我测试的几个库中,我可以在PCL项目中安装Mike Stall的“ CsvTools ”。

示例CSV文件:

Id|FirstName|LastName|IsRegistered
10248|George|Scheffer|true
10249|Linda|Watson|false
10250|John|Deyoe|false
10251|Amy|Bannister|true

假设PCL根目录中有一个名为“users.csv”的文件,并将其BuilsAction设置为EmbeddedResource(正如您已经做过的那样):

以下是我们将CSV文件的每一行转换为它的模型:

public class User
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public bool IsRegistered { get; set; }
    }

以下是阅读此CSV文件并获取用户集合的所有功能:

var assembly = typeof(MainPage).GetTypeInfo().Assembly;
Stream stream = assembly.GetManifestResourceStream("XFTest.users.csv");

var csvData = DataTable.New.ReadLazy(stream);
List<User> users = csvData.RowsAs<User>().ToList();

请注意,此处无需定义任何分隔符,它适用于“|”,如果它是逗号,它也可以使用。