假设我有一个包含“1书价12.00美元”的文本文件。我想读一下这个刺痛 并设置我的局部变量,如int quantity,string product_type,Double price等。 读取文件后,我的变量值应为
quantity = 1;
product_type = Book;
price = 12.00;
你能建议我怎么做吗?
答案 0 :(得分:1)
您是否有理由要求使用文本文件存储数据? XML将是存储和解析此类数据的更好,更简单的方法。
<Books>
<Book>
<Quantity>1</Quantity>
<Price>12</Price>
</Book>
</Books>
有很多选项可以解析这个问题。您可以使用XMLDocument,XMLReader,XElement等加载此文件并解析单个元素。如果在文本文件中添加更复杂的数据,基于索引的字符串操作往往会变得难看且容易出错。
答案 1 :(得分:1)
您可以使用XML,也可以查找JSON Here
语法非常简单,而且比XML更轻量级。
您可以直接将其读入Class Objects。
JSON的示例: -
[
{
"Qty": 1,
"ProductType": "Book",
"Price": 12.01
},
{
"Qty": 1,
"ProductType": "Pen",
"Price": 12.01
}
]
这是一个代码段。您需要添加对Newtonsoft JSON的引用。
using System;
using System.Collections.Generic;
using System.IO;
using Newtonsoft.Json;
namespace JSONExample
{
internal class Program
{
private static void Main(string[] args)
{
LoadJson();
}
public static void LoadJson()
{
using (StreamReader r = new StreamReader(@"C:\Users\Derek\Desktop\JSON.txt"))
{
string json = r.ReadToEnd();
List<Product> dataFile = JsonConvert.DeserializeObject<List<Product>>(json);
foreach (var product in dataFile.ToArray())
{
Console.WriteLine("Type: {0} - Price: {1} - Quantity: {2}", product.ProductType, product.Price,
product.Qty);
}
}
Console.ReadKey();
}
}
public class Product
{
public int Qty { get; set; }
public string ProductType { get; set; }
public float Price { get; set; }
}
}
答案 2 :(得分:-1)
string str = "1 Book price $12.00";
string[] strArray = str.Split(' ');
int quantity = Convert.ToInt32(strArray[0]);
string product_type = strArray[1];
decimal price = Convert.ToDecimal(strArray[3].Replace("$", ""));