[英]Unknown Type of data to return in linq to xml query
我想返回從Linq中的查詢獲取的匿名數據。 我不知道哪種List <>返回,因為數據是“ var”匿名的。
public List<?????> QueryXmlUserLogin()
{
var data = from item in XDocumentObj.Descendants("User_Data")
select new
{
user = item.Element("user").Value,
password = item.Element("password").Value,
};
data.ToList();
return ????
根據它們的預期用途,想到了兩種數據類型,即Tuple<string, string>
或KeyValuePair<string, string>
:
public List<Tuple<string, string>> QueryXmlUserLogin()
{
var data = from item in XDocumentObj.Descendants("User_Data")
select Tuple.Create(item.Element("user").Value, item.Element("password").Value);
return data.ToList();
}
但是,使用這些通常可以隱藏返回類型的含義。 由於該方法是公共方法,因此最好為該作業創建一個新類:
public class UserCredentials
{
public string Username {get; set; }
public string Password {get; set; }
}
public List<UserCredentials> QueryXmlUserLogin() ...
另外,不應基於明文存儲密碼(基於變量名)。 抱歉,如果我錯誤地解釋了變量或者您的示例是人為的,但是如果有人偶然發現了該帖子,則應存儲密碼(和唯一的鹽)的哈希值,而不是以明文形式存儲密碼。
我不會返回匿名類型,因為它們有此問題。 也許您應該創建一個新的數據結構,構造它,然后返回該List<T>
。
您可以創建一個類型,例如:
class Person {
public string User { get; set; }
public string Password { get; set; }
}
然后使用:
public List<Person> QueryXmlUserLogin()
{
var data = from item in XDocumentObj.Descendants("User_Data")
select new Person
{
User = item.Element("user").Value,
Password = item.Element("password").Value,
};
return data.ToList();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.