私のデータベースはcsvファイルで構成されています。私は最初の列でアルファベット順にしておきたいので、検索時に検索項目がリスト内で見つかる場所を過ぎてから止めることができます。アルファベット順リストを検索して追加する
セットアップ:私はfullDBと呼ばれるList<string>
にcsvファイル全体を読みました。私はitemToFindという検索文字列を持っています。ここに私の検索コードは次のとおりです。
public string[] isFoundInDB(List<string> fullDB, string itemToFind)
{
for (int i = 0; i < fullDB.Count; i++)
{
string[] line = fullDB[i].Split(',');
if (itemToFind.CompareTo(line[0]) < 0)
{
return new string[] { "-1", i.ToString(), "-1", "-1", "-1", "-1" }; //not found
}
if (line[0] == itemToFind)
{
return new string[] { i.ToString(), line[0], line[1], line[2], line[3], line[4] };
}
}
return new string[] { "-1", fullDB.Count.ToString(), "-1", "-1", "-1", "-1" }; //not found
}
だからこれは私にそれがデータベース内で見つかったインデックスを与えるいずれか、またはそれは私にitemToFindはそれがアルファベット順になるところを過ぎていった指標を与えます。見つかった場合は、そこにある値を変更します。それが見つからない場合は、私がアルファベット順に使用して、正しい場所でそれを挿入しList.Insert
私の質問で、itemToFindがデータベースで見つからない場合には、私の現在のList.Insert
を行うことが、より効率的で、OR List.Add
を行うだろうその後、私は物事を追加し終わったときに全体を並べ替えますか?このコードを使用して、データベース全体を並べ替えることができます:
IEnumerable<string> query =
from line in fullDB
let x = line.Split(',')
orderby x[0]
select x[0] + "," + x[1] + "," + x[2] + "," + x[3] + "," + x[4];
fullDB = query.ToList();
また別の方法がありますか? C#を使用して
、.NETフレームワーク4.0
あなたのコードがうまくいくなら、おそらくcodereview.stackexchange.comで尋ねる前に再度確認してください。 – TheLethalCoder