通常我只使用字典作为键值对,但我期待三列。
然后我需要比较搜索词以查看它是否与第二列中的任何值匹配。
答案 0 :(得分:1)
如果你想快速而又脏,那么你可以返回一个DataTable。否则,如果数据表示某些内容,您可以创建自己的类来将三个值保存在对象的三个属性中。
public class MyDataObject
{
public string Value1 { get; set; }
public string Value2 { get; set; }
public string Value3 { get; set; }
public bool MatchesSearchTerm(string term)
{
return Value2.Equals(term, StringComparer.OrdinalIgnoreCase);
}
}
答案 1 :(得分:0)
什么是“搜索字词”?为什么你需要首先存储行?
假设您有充分的理由在本地存储结果而您只关心“第二列中的任何值”,您可能需要探索存储List<dataTypeOfSecondColumn>
。
答案 2 :(得分:0)
class YourDatum
{
int Id { get; set; }
string Value1 { get; set; }
string Value2 { get; set; }
public bool Match(string term)
{
return Value2.ToUpperInvariant() == term.ToUpperInvariant();
}
}
var cachedResults = new Dictionary<int, YourDatum>();
//your database calls go here
foreach (var dbRow in dbRows)
{
cachedResults.Add(
idFromDb,
new YourDatum {Id=idFromDb, Value1=valueFromDb1, Value2=valueFromDb2});
}
//find a match in the results later on...
string searchTerm = "abcdef";
List<YourDatum> matches=
(from datum in cachedResults where
datum.Match(searchTerm) select datum).ToList();
答案 3 :(得分:0)
public class QueryCache
{
public class DataObject
{
public bool Data1 { get; set; }
public string Data2 { get; set; }
public int Data3 { get; set; }
}
Dictionary<string, DataObject> _cache = new Dictionary<string, DataObject>();
public void AddToCache(DataObject obj_)
{
_cache.Add(obj_.Data2, obj_);
}
public bool ExistsInCache(string searchTerm_)
{
return _cache.ContainsKey(searchTerm_);
}
public DataObject this[string searchTerm_]
{
get
{
return _cache[searchTerm_];
}
}
}