net 总数据中取随机几条数据
List<string> lstSample = new List<string>();
Random rand = new Random();
List<int> lstRand = new List<int>();
for (int i = ; lstRand.Count() < sampleNum; i++)
{
int mRandNum = rand.Next(, mStageDataCount);
if (!lstRand.Contains(mRandNum))
{
lstRand.Add(mRandNum);
lstSample.Add(lstDataAll.ToList()[mRandNum]);
}
}
平均等判断
List<string> lstSampleRangIdSel = new List<string>(); //去掉同一重复的
List<string> lstStageBuildId = IProjectBuildHouseStage.Select(m => m.BuildingId).Distinct().ToList(); //分期所有的
//余数
int mQuotient = sampleNum / lstBuilding.Count();
if (mQuotient > )
{
//少了的楼房数据
int mLost = ;
foreach (var buildId in lstBuilding)
{
Random rand = new Random();
List<int> lstRand = new List<int>();
var lstProjectBuildHouseStageQuotient = IProjectBuildHouseStage.Where(m => m.BuildingId == buildId);
int mBuildHouseCount = lstProjectBuildHouseStageQuotient.Count();
//余数大于楼房数
if (mQuotient > mBuildHouseCount)
{
if (lstProjectBuildHouseStageQuotient.Any())
{
lstProjectBuildHouseSample.AddRange(lstProjectBuildHouseStageQuotient.ToList());
}
mLost = mLost + mQuotient - mBuildHouseCount;
continue;
} for (int i = ; lstRand.Count() < mQuotient; i++)
{
int mRandNum = rand.Next(, mBuildHouseCount);
if (!lstRand.Contains(mRandNum))
{
lstRand.Add(mRandNum);
lstProjectBuildHouseSample.Add(lstProjectBuildHouseStageQuotient.ToList()[mRandNum]);
}
}
} //模数
int mRemainder = sampleNum % lstBuilding.Count() + mLost;
if (mRemainder > )
{
Random rand = new Random();
List<int> lstRand = new List<int>();
for (int i = ; lstRand.Count() < mRemainder; i++)
{
int mRandNum = rand.Next(, mStageDataCount);
if (!lstRand.Contains(mRandNum))
{
string strIdSel = IProjectBuildHouseStage.ToList()[mRandNum].BuildingId;
var lstExcept = lstStageBuildId.Where(m => m != strIdSel).Except(lstSampleRangIdSel);
if (lstExcept.Any() && lstSampleRangIdSel.Contains(strIdSel))
{
continue;
}
lstRand.Add(mRandNum);
lstProjectBuildHouseSample.Add(IProjectBuildHouseStage.ToList()[mRandNum]);
if (!lstSampleRangIdSel.Contains(strIdSel))
{
lstSampleRangIdSel.Add(strIdSel);
}
}
}
}
}
else
{
Random rand = new Random();
List<int> lstRand = new List<int>();
for (int i = ; lstRand.Count() < sampleNum; i++)
{
int mRandNum = rand.Next(, mStageDataCount); if (!lstRand.Contains(mRandNum) )
{
string strIdSel = IProjectBuildHouseStage.ToList()[mRandNum].BuildingId;
var lstExcept = lstStageBuildId.Where(m => m != strIdSel).Except(lstSampleRangIdSel);
if (lstExcept.Any() && lstSampleRangIdSel.Contains(strIdSel))
{
continue;
}
lstRand.Add(mRandNum);
lstProjectBuildHouseSample.Add(IProjectBuildHouseStage.ToList()[mRandNum]);
if (!lstSampleRangIdSel.Contains(strIdSel))
{
lstSampleRangIdSel.Add(strIdSel);
}
}
}
}
--作废
//余数
int mQuotient = sampleNum / lstBuilding.Count();
if (mQuotient > )
{
//少了的楼房数据
int mLost = ;
foreach (var buildId in lstBuilding)
{
Random rand = new Random();
List<int> lstRand = new List<int>();
var lstProjectBuildHouseStageQuotient = IProjectBuildHouseStage.Where(m => m.BuildingId == buildId);
int mBuildHouseCount = lstProjectBuildHouseStageQuotient.Count();
//余数大于楼房数
if (mQuotient > mBuildHouseCount)
{
if (lstProjectBuildHouseStageQuotient.Any())
{
lstProjectBuildHouseSample.AddRange(lstProjectBuildHouseStageQuotient.ToList());
}
mLost = mLost + mQuotient - mBuildHouseCount;
continue;
} for (int i = ; lstRand.Count() < mQuotient; i++)
{
int mRandNum = rand.Next(, mBuildHouseCount);
if (!lstRand.Contains(mRandNum))
{
lstRand.Add(mRandNum);
lstProjectBuildHouseSample.Add(lstProjectBuildHouseStageQuotient.ToList()[mRandNum]);
}
}
} //模数
int mRemainder = sampleNum % lstBuilding.Count() + mLost;
if (mRemainder > )
{
Random rand = new Random();
List<int> lstRand = new List<int>();
for (int i = ; lstRand.Count() < mRemainder; i++)
{
int mRandNum = rand.Next(, mStageDataCount);
if (!lstRand.Contains(mRandNum))
{
lstRand.Add(mRandNum);
lstProjectBuildHouseSample.Add(IProjectBuildHouseStage.ToList()[mRandNum]);
}
}
}
}
else
{
Random rand = new Random();
List<int> lstRand = new List<int>();
for (int i = ; lstRand.Count() < sampleNum; i++)
{
int mRandNum = rand.Next(, mStageDataCount);
if (!lstRand.Contains(mRandNum))
{
lstRand.Add(mRandNum);
lstProjectBuildHouseSample.Add(IProjectBuildHouseStage.ToList()[mRandNum]);
}
}
}
net 总数据中取随机几条数据的更多相关文章
- FreeMarkerz在List中取任意一条数据的某一个值
首先你要知道要取的数据的下标 <#list itemsList as item> <#if item_index==1> <#if "${item.value} ...
- SELECT INTO和INSERT INTO SELECT的区别 类似aaa?a=1&b=2&c=3&d=4,如何将问号以后的数据变为键值对 C# 获取一定区间的随即数 0、1两个值除随机数以外的取值方法(0、1两个值被取值的概率相等) C# MD5 加密,解密 C#中DataTable删除多条数据
SELECT INTO和INSERT INTO SELECT的区别 数据库中的数据复制备份 SELECT INTO: 形式: SELECT value1,value2,value3 INTO Ta ...
- sql-实现select取行号、分组后在分组内排序、每个分组中的前n条数据
表结构设计: 实现select取行号 sql局部变量的2种方式 set @name='cm3333f'; select @id:=1; 区别:set 可以用=号赋值,而select 不行,必须使用:= ...
- mysql-利润set变量模拟分组查询每组中的第N条数据
查询思路: 很多时候想在使用group by时想查询group by的每一组中的第N条数据,而取这些数据时往往按如下方式去执行则很慢 ; 按如上方式,对于数据10000左右的表就已经很吃不消. 或已拼 ...
- DataTable相关操作,筛选,取前N条数据,获取指定列数据
DataTable相关操作,筛选,取前N条数据,获取指定列数据2013-03-12 14:50 by Miracle520, 2667 阅读, 0 评论, 收藏, 编辑 1 #region DataT ...
- mysql查询随机几条数据(速度快)
MySql查询随机几条数据 想到了 Max RAND 这几个函数 用以下2种办法都可以实现查询. 速度还行. 几十万数据左右, 没有什么问题. SELECT * FROM `news` WHERE i ...
- sql 查询某个条件多条数据中最新的一条数据或最老的一条数据
sql 查询某个条件下多条数据中最新的一条数据或最老的一条数据 test_user表结构如下: 需求:查询李四.王五.李二创建的最初时间或者最新时间 1:查询最初的创建时间: SELECT * FRO ...
- oracle和sql server中,取前10条数据语法的区别
在sql server中,取数据中前10条语句,我们可以用top 10 这样语句,但是oracle就没有这个函数,接下来介绍它们之间的区别 1.sql server 取前10语句和随机10条的语法 - ...
- 关于MyBatis的collection集合中只能取到一条数据的问题
问题:在涉及多表查询的时候,使用collection元素来映射集合属性时,出现了只能查询到一条数据的情况,但用sql语句在数据库中查询会有多条记录. 解决:如果两表联查,主表和明细表的主键都是id的话 ...
随机推荐
- sqlserver高版本还原到低版本方法
想要将Sqlserver2014高版本备份的数据还原到低版本SqlServer2008R2上去,但是这在SqlServer中是没法直接还原数据库的,通过以下方法可以顺利还原. 通过高版本生成sql脚本 ...
- 哈雷监控设备的操作及升级NSG9k6G
哈雷监控设备的操作及升级NSG9k6G 一.下载升级包: http://pan.baidu.com/s/1kTmw9sr 如连接不可以用可以直接私聊我.QQ1841031740 二.升级: 下载完后, ...
- UWP&WP8.1 基础控件——Grid
Grid是一个面板控件 Grid是UWP和WPF,WP8.1中最重要的一个控件,相当相当重要. 他是一个面板控件,是用来添加其他控件 但是呢 用法确实简单的很. 大概就这个样子. 你用工具箱拖, ...
- 【bzoj2818】: Gcd 数论-欧拉函数
[bzoj2818]: Gcd 考虑素数p<=n gcd(xp,yp)=p 当 gcd(x,y)=1 xp,yp<=n满足条件 p对答案的贡献: 预处理前缀和就好了 /* http://w ...
- tomcat跨域(亲测可用)
首先下载cors-filter-2.5.jar(版本不要求)和java-property-utils-1.9.1 1.把这两个jar包放在tomcat的lib下. 2.在conf文件夹下找到web.x ...
- 最短路【bzoj1726】: [Usaco2006 Nov]Roadblocks第二短路
1726: [Usaco2006 Nov]Roadblocks第二短路 Description 贝茜把家搬到了一个小农场,但她常常回到FJ的农场去拜访她的朋友.贝茜很喜欢路边的风景,不想那么快地结束她 ...
- CF671A Recycling Bottles 计算几何
It was recycling day in Kekoland. To celebrate it Adil and Bera went to Central Perk where they can ...
- js 遍历tree的一个例子
小例子蕴含着到力量,我希望自己有改变自己生活的能力,自己有主宰自己命运的能力... 备注:这个例子有问题. <!DOCTYPE html> <html lang="en&q ...
- pacemaker +corosync高可用
server1:yum install pssh-2.3.1-2.1.x86_64.rpm crmsh-1.2.6-0.rc2.2.1.x86_64.rpm -yyum install -y pac ...
- Java 类型转换(int->String)
1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...