需求,sqlite数据库, 同一张表存在多个不同的db中, 按照表进行分类,并导出数据量最大的表。 使用group by 对表进行分组,并取数量最大的,用于导出数据 主要代码逻辑,实现CompareTo方法可参考max()
namespace MTDataCheck
{
class Program
{
static void Main ( string [ ] args)
{
IList< TbFile> lst = new List < TbFile > ( ) ;
var groupResult = from s in lst
group s by s. TableName;
HashSet< TbFile> exportLst = new HashSet < TbFile > ( ) ;
foreach ( var grop in groupResult)
{
exportLst. Add ( grop. Max ( ) ) ;
}
Console. WriteLine ( exportLst. Count) ;
Console. ReadLine ( ) ;
}
}
class TbFile : IComparable < TbFile>
{
public string DbFolderName { get ; set ; }
public string TableName { get ; set ; }
public string FileMonth
{
get {
return TableName. Split ( '_' ) [ 1 ] . Substring ( 0 , 6 ) ;
}
}
public int count { get ; set ; }
public int CompareTo ( TbFile other)
{
if ( this . count >= other. count)
return 1 ;
return 0 ;
}
}
}