我有一個字符串列表,我想找到特定的值並返回。 如果我只是想找尋我可以用一個HashSet,而不是列表列表查找,Hashset或Linq哪一個更好在列表中
HashSet<string> data = new HashSet<string>();
bool contains = data.Contains("lokendra"); //
但對於名單我使用Find
,因爲我想也從列表返回值。 我發現這個方法非常耗時。此代碼所在的方法是hit more than 1000 times
,列表大小爲appx 20000 to 25000
。此方法需要時間。是否有其他方法可以使搜索更快。
List<Employee> employeeData= new List<Employee>();
var result = employeeData.Find(element=>element.name=="lokendra")
我們是否有任何linq或任何其他方法,使得從搜索中更快地檢索數據。 請幫忙。
public struct Employee
{
public string role;
public string id;
public int salary;
public string name;
public string address;
}
我有這種結構的列表,如果名稱屬性值「洛肯德拉」。然後我想retrun整個object.Consider列表作爲員工的數據相匹配。
我想知道我們擁有Hashset以獲得更快搜索的方式,無論如何,我們都可以搜索數據並快速返回而不是查找。
你是什麼意思「我想從列表中返回的值」?你知道價值 - 你在檢查它,所以它永遠是「lokendra」。請澄清你的問題。 – 2013-04-04 11:51:24
@Jon Skeet。我想從列表中查找列表是否包含值,或者實際上是否包含對象列表,所以如果名稱屬性匹配,那麼我將返回整個對象。 – 2013-04-04 11:53:58
這完全改變了問題的性質。你的實際情況與你所描述的不符。 – 2013-04-04 11:58:15