110,539
社区成员
发帖
与我相关
我的任务
分享
var arr = Enumerable.Range(1, 10);
var staticLotteryList = new List<Lottery>();
int startIssue = 400000;
int issueNumber = 20;
for (var i = 0; i < issueNumber; i++)
{
staticLotteryList.Add(new Lottery() { Issue = startIssue + i, Numbers = arr.OrderBy(x => Guid.NewGuid()).ToArray() });
}
Parallel.For(0, 10, idx =>
{
for (int i = staticLotteryList.Count - 1; i > 0; i--)
{
for (int j = i - 1; j >= 0; j--)
{
if(staticLotteryList[i].Numbers[idx]==staticLotteryList[j].Numbers[idx])
{
Console.WriteLine(string.Format("Issue:{0} Numbers:第{1}位{2}与Issue:{3} Numbers:第{1}位{4}相同",
staticLotteryList[i].Issue, idx, staticLotteryList[i].Numbers[idx], staticLotteryList[j].Issue, staticLotteryList[j].Numbers[idx]));
break;
}
}
}
});
这里用了4.0才有的Parallel
int GetNum(int row,int col)//row为行号col为列号
{
//获取某行某列值并返回
}
int currRow=-1;//最近的相同值的行号
for(int row=最大行数,row>0;row--)
{
for(int col=最大列数;col>0;col--)
{
int cellNum=GetNum(row,col);
for(int i=row-1;i>0;i--)
{
if(cellNum==GetNum(i,col))
{ currRow=i;break;}
}
}
}