簡單的解決方案(假設你已經固定ID的格式 - 5位):
var users = File.ReadAllLines("data.txt")
.ToDictionary(line => line.Substring(0, 5));
這造成用線作爲值和ID作爲密鑰字典。用法:
string line = users["00125"]; // 00125 JAMES LONDON
這是最簡單的解決方案。但實際上,我會介紹一些類,如:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public static User Parse(string s)
{
var parts = s.Split(new []{' '}, StringSplitOptions.RemoveEmptyEntries);
return new User {
Id = Int32.Parse(parts[0]),
Name = parts[1],
Location = parts[2]
};
}
public override string ToString()
{
return String.Format("{0:00000} {1} {2}", Id, Name, Location);
}
}
然後分析每一行,並把用戶Dictionary<int, User>
類型的字典。這將使您的代碼具有強類型並且更易於維護:
var users = File.ReadAllLines("data.txt")
.Select(line => User.Parse(line))
.ToDictionary(u => u.Id);
var user = users[127];
string name = user.Name; // STARK
Console.WriteLine(user); // 00127 STARK USA
您嘗試了哪些?你有沒有爲自己研究過這個? http://whathaveyoutried.com – Joetjah 2013-02-28 14:56:54
另請參見:http://stackoverflow.com/questions/how-to-ask – Joetjah 2013-02-28 14:57:41
一切是真的在一行中還是在一行中的ID名稱和位置,然後在下一個ID名稱和位置下一行?在任何情況下,都會想到'String.Split('')'... – Corak 2013-02-28 15:01:30