C#/vb.net高手进来看一个linq去集合的差集的问题 , 运行结果和预期不一样 。实现有问题 。在这里,C不需要实现 IEquatableC,因为Except方法默认情况下调用的是 object 的 Equals 方法,而不是这个接口的方法 。C改成如下内容即可:
public class C
{
public string S;
public override bool Equals(object other)
{
if(other==null)return false;
if(other.GetType()!=GetType())return false;
if(other==this)return true;
return ((C)other).S.Equals(S);
}
public override int GetHashCode()
{
return S.GetHashCode();
}
}
另外GetHashCode重写是一个建议,不是必须的,所以不会出错 。
VB.NET 判断一个数组里面的值是否全部相同, 然后再执行下一步在.NET 中微软已经为我们内置了一些方法,我们可以直接使用该方法以快速达到我们的目的
Module Module1
Sub Main()
Dim a(3) As Int32
a(0) = 1
a(1) = 1
a(2) = 1
a(3) = 1
【linq案例vb.net lingo案例分析】'推荐第一种方法
If a.Distinct().Count() = 1 Then
If a.All(Function(c) c = 1) Then
End If
End If
End Sub
End Module
第二种方法为LINQ,这是一种高级用法;是.NET 程序员必知必会的东西,如果不懂怎么用可以按F1查看官方文档
将VB.NET 的LINQ改成C#版本public System.Linq.Expressions.ExpressionFuncTElement, bool ContainsExpressionTElement, TValue(System.Linq.Expressions.ExpressionFuncTElement, TValue valueSelector, IEnumerableTValue values)
{
if (valueSelector == null)
{
throw new ArgumentNullException("valueSelector");
}
if (values == null)
{
throw new ArgumentNullException("values");
}
System.Linq.Expressions.ParameterExpression p = valueSelector.Parameters.Single();
if (!values.Any())
return e = false;
var @equals = values.Select(value = https://www.04ip.com/post/(System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Equal(valueSelector.Body, System.Linq.Expressions.Expression.Constant(value, typeof(TValue))));
var body = @equals.Aggregate((accumulate, equal) = System.Linq.Expressions.Expression.Or(accumulate, equal));
return System.Linq.Expressions.Expression.LambdaFuncTElement, bool(body, p);
}
如何使用vb.net获取一个文件夹里最后一个数据文件的名称?function Newfile as fileinfo
Dim dic As New System.IO.DirectoryInfo("C:\Users\Q\Desktop\数据")
Dim files = dic.GetFiles.OrderByDescending(Function(s) s.CreationTime)
if files.
return files.first
end function
注意引入 system.linq
在 c# 或 vb.net 如何使用 LINQ 统计 Dictionary 中符合条件的对象数量?见以下示例
using System;
using System.Collections.Generic;
using System.Linq;
namespace MyApplication
{
class Program
{
public class MyClass
{
public string Name { get; set; }
public bool IsTrue { get; set; }
}
static void Main(string[] args)
{
Dictionaryint, MyClass dic =
new Dictionaryint, MyClass();
//添加
dic.Add(1, new MyClass { Name = "张三", IsTrue = false });
dic.Add(2, new MyClass { Name = "张四", IsTrue = true });
dic.Add(3, new MyClass { Name = "张五", IsTrue = false });
dic.Add(4, new MyClass { Name = "张六", IsTrue = true });
dic.Add(5, new MyClass { Name = "张七", IsTrue = false });
int c1 = dic.Count(e = e.Value.IsTrue == true);
Console.WriteLine(c1);//输出2
int c2 = dic.Count(e = e.Value.IsTrue == false);
Console.WriteLine(c2);//输出3
// 或者
var qry1 = from x in dic
where x.Value.IsTrue == true
select x;
int c3 = qry1.Count();
Console.WriteLine(c3); //输出2
var qry2 = from x in dic
where x.Value.IsTrue == false
select x;
int c4 = qry2.Count();//输出3
Console.WriteLine(c4);
}
}
}
关於.net LINQ分组查询使用方法 使用VB语言完成C# 版的
var datatable = new[] {
new {name = "aa", num = 5},
new {name = "aa", num = 6},
new {name = "aa", num = 11},
new {name = "ab", num = 1},
new {name = "ab", num = 8},
};
var result = datatable.GroupBy(o = o.name).Select(o = new { name = o.Key, num = (datatable.Where(p = p.name == o.Key).Select(r = r.num).Max() - datatable.Where(q = q.name == o.Key).Select(x = x.num).Min()) });
理解含义 , 用VB写一样的
linq案例vb.net的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于lingo案例分析、linq案例vb.net的信息别忘了在本站进行查找喔 。
推荐阅读
- 起名软件下载,起名软件免费版
- 畅享10plus可以怎么升级鸿蒙系统,华为畅享10plus能升级鸿蒙系
- python函数_ python函数代码
- 包含谷歌flutter测试的词条
- 即时战略单机小游戏大全,好玩的即时战略单机游戏
- 电商如何包装石榴,石榴发快递怎么包装
- python库中的函数 python库函数这么多怎么记
- 自驾游户外怎么看电视,自驾游如何看电视
- 关于如何开发一个优质棋牌游戏的信息