文字列の配列のHashSetがあります。配列の1つの文字列は、「2015-9-1421:22:13」DateTimeのようなものです。DateTime.ParseExactを使用してdateTimeに変換し、linqを使用して2つのdateTime間のHashSet配列からすべての時間を検索するにはどうすればよいですか。以前はlistを使用していましたが、検索要素の方がHashSetのパフォーマンスが向上しました。現在、HashSetで機能するようにコードを変更しています。
これが私の古いコードとリストです:
foreach (var infos in this.InfoFromDatabase)
{
thisTime = DateTime.ParseExact(infos[5], "yyyy-M-d H:m:s", null);
// if is in this diapazon time add in list
if (thisTime > minimumDateTime && thisTime < maximumDateTime)
{
allInformation.Add(infos);
}
}
LINQを探しているだけなら、ここにあります。これは、任意のIEnumerable<string[]>
(ハッシュセットとリストの両方)で機能します。
//Assuming that
//IEnumerable<string[]> this.InfoFromDatabase
var allInformation = this.InfoFromDatabase.Where(i =>
{
var thisTime = DateTime.ParseExact(i[5], "yyyy-M-d H:m:s", null);
return thisTime > minimumDateTime && thisTime < maximumDateTime;
});
必要に応じて、結果ToList()
に対してまたはその他のTo...()
メソッドを呼び出すことができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加