
你如果一定要用循环来做这个,可以先建立一个字典对象,用来存每个元素和其出现的次数。
int[] arr = new int[10] { 8, 7, 8, 7, 9, 1, 2, 3, 4, 5 };
//建立一个字典用来统计相同元素
Dictionary<int, int> lst = new Dictionary<int, int>();
foreach (var obj in arr)
{
if (lstContainsKey(obj))
{
lst[obj]++; //如果已经出现的元素就加次数
}
else{
lstAdd(obj, 1); //没有出现的元素加到字典中
}
}
foreach (var obj in lst)
{
ConsoleWriteLine(objKeyToString() + ":" + objValueToString());
}
其他的方法,你可以lamb来简单代码,其实跟循环差不多,不过少写很多代码。
//数组还是用上面的arr
foreach (var grp in arrGroupBy(c=>c))
{
ConsloeWriteLine(grpKeyToString() + ":" + grpCount()ToString());
}
//导入linq命名空间, 然后distinct一下就可以了 关键代码如下:
using SystemLinq;
//比如,list实例为list
var obj = listDistinct();
//或者麻烦点要根据list的字段xxx过滤就是
var obj_1=from p in list select pxxx distinct();
扩展资料
list()函数与array()类似,只是它可以在一次 *** 作中从一个数组内提取多个值,同时为多个变量赋值。其形式如下:
voidlist(mixed…)从数据库或文件中提取信息时,这种构造尤其有用。例如,假如你希望格式化并输出从一个文本,文件中读取信息。文件的每一行都包含用户信息,如姓名、职业和喜爱的颜色,每一项用竖线分隔。典型的一行如下所示:
Nino Sanzi|profesional golfer|green
可以通过一个简单的循环使用list()来读取每一行,将各部分数据赋给变量,按照需要格式化并输出数据。
参考资料来源:百度百科:list
public static bool cs()
{
DataTable dt = new DataTable();
var q = from a in dtAsEnumerable()
group a by aField<string>("id") into ids
select new
{
a = idsKey,
b = ids
};
foreach(var a in q)
{
var q2 = from a2 in ab
group a2 by a2Field<string>("name") into ids2
select new
{
c = ids2Key,
d = ids2
};
foreach(var a3 in q2)
{
if(a3dCount()>1)
{
return false;
}
}
}
return true;
}
参考以上
先按id分组 然后相同id里面 名字相同返回false是吧
using System;
using SystemCollectionsGeneric;
using SystemLinq;
namespace ConsoleApplication1
{
class ItemInfo
{
/// <summary>
/// ItemInfo 类记录数组元素重复次数
/// </summary>
/// <param name="value">数组元素值</param>
public ItemInfo(int value)
{
Value = value;
RepeatNum = 1;
}
/// <summary>
/// 数组元素的值
/// </summary>
public int Value { get; set; }
/// <summary>
/// 数组元素重复的次数
/// </summary>
public int RepeatNum { get; set; }
}
class Program
{
static void Main(string[] args)
{
// 待统计的整型数组
int[] a = { 1, 1, 1, 3, 1, 2, 2, 1, 3, 4, 2, 1, 5, 3, 4 };
// 集合 dic 用于存放统计结果
Dictionary<int, ItemInfo> dic =
new Dictionary<int, ItemInfo>();
// 开始统计每个元素重复次数
foreach (int v in a)
{
if (dicContainsKey(v))
{
// 数组元素再次,出现次数增加 1
dic[v]RepeatNum += 1;
}
else
{
// 数组元素首次出现,向集合中添加一个新项
// 注意 ItemInfo类构造函数中,已经将重复
// 次数设置为 1
dicAdd(v, new ItemInfo(v));
}
}
foreach (ItemInfo info in dicValues)
{
ConsoleWriteLine("数组元素 {0} 出现的次数为 {1}",
infoValue, infoRepeatNum);
}
}
}
}
public static void cs()
{
SystemDataDataTable dt = new SystemDataDataTable();
dtRowsAdd("");
var quer = from tb in dtAsEnumerable()
group tb by tbField<string>("xx") into x
select new{
a=xKey,
b=x
};
foreach(var c in quer)
{
int i = 0;
foreach(var d in cb)
{
i++;
}
if(i>1)
{
//有重复
}
}
for (int i = 0; i < dtRowsCount;i++ )
{
var qu = from tb in dtAsEnumerable()
where tbField<string>("xx") == dtRows[i]["xx"]ToString()
select tb;
if (quCount() > 1)
{
//有重复
}
}
}
两种方法 看你喜欢哪种
以上就是关于c#怎么用循环查找数组相同元素的次数全部的内容,包括:c#怎么用循环查找数组相同元素的次数、C#中 list<object> 去除重复的数据 求最简单的方法!!、怎么用linq按照id分组查到name有相同时,c#语法返回false等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)