Linq语法

获取主机ip
invoke C#
string sHostName = Dns.GetHostName();
IPHostEntry ipE = Dns.GetHostEntry(sHostName );
IPAddress[] IpA = ipE.AddressList;
for(int i = 0;i<ipA.Length;i++)
{
Console.WriteLine(“IP Address{0}:{1}”,i,IpA[i].tostring())
}
筛选数据表
DT.AsEnumerable.Where(function(row) CDbl(row.Item(“字段”))<0).copyDatatable
获取datatable某一列的值 列表
(from d in datatable.asenumeranle() select d(“tittle”)).tolist()
保留几位小数
Formatnumber(小数,2,vbtrue)
round(小数,2)
//获取列表中重复的数值
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 5, 6, 8 };
var kist = (from r in arr
group r by r into g
where g.Count() > 1
select g.Key).ToList();

        foreach (var i in kist)
        {
            Console.WriteLine(i);

        }
       Console.ReadKey();
   
        string str11 = @"D:\学习视频\C#\xx.wav";
        **//字符串截取文件名**
        int index = str11.LastIndexOf("\\");
        str11 = str11.Substring(index + 1);
        **//获取文件名**
        str11 = Path.GetFileName(str11);
        **//获取文件名但不包含扩展名**
        str11 = Path.GetFileNameWithoutExtension(str11);
        //获取文件扩展名
        str11 = Path.GetExtension(str11);
        //获取文件所在文件夹的名称
        str11 = Path.GetDirectoryName(str11);
        //获取文件所在的全路径
        str11 = Path.GetFullPath(str11);
        //连接两个字符串作为路径
        str11 = Path.Combine(@"C:\a\", "b.txt");
namespace ConsoleApp4
{
    class Program
    {
        class DepartementClass
        {
            public int DepartmentId { get; set; }
            public string Name { get; set; }
        }
        class EmployeeClass
        {
            public int EmployeeId { get; set; }
            public string EmployeeName { get; set; }
            public int DepartmentId { get; set; }
        }
        class pet
        {
            public string Name { get; set; }
            public int Age { get; set; }
        }
        static void Main(string[] args)
        {
            //简单select
            List<String> words = new List<string>() { "an", "apple", "a", "day" };
            var query = from word in words
                        select word.Substring(0, 1);

            foreach (string s in query)
                Console.WriteLine(s);

            //双层from
            List<String> phrases = new List<String> { "an apple a day", "the quick brown fox" };
            var query1 = from phrase in phrases
                         from word in phrase.Split(" ")
                         select word;
            foreach (string s in query1)
                Console.WriteLine(s);
            Console.ReadLine();


            //简单where
            string[] words1 = { "humpty", "dumpty", "set", "on", "a", "wall" };
            IEnumerable<string> query2 = from word in words1
                                         where word.Length == 3
                                         select word;
            foreach (string str in query2)
                Console.WriteLine(str);


            //两个列表比对键取值
            List<DepartementClass> departments = new List<DepartementClass>();
            departments.Add(new DepartementClass { DepartmentId = 1, Name = "Account" });
            departments.Add(new DepartementClass { DepartmentId = 2, Name = "Sales" });
            departments.Add(new DepartementClass { DepartmentId = 3, Name = "Marketing" });

            List<EmployeeClass> employees = new List<EmployeeClass>();
            employees.Add(new EmployeeClass { EmployeeId = 1, EmployeeName = "ilinlin", DepartmentId = 1 });
            employees.Add(new EmployeeClass { EmployeeId = 1, EmployeeName = "iin", DepartmentId = 2 });
            employees.Add(new EmployeeClass { EmployeeId = 1, EmployeeName = "nlin", DepartmentId = 3 });

            var list = (from e in employees
                        join d in departments on e.DepartmentId equals d.DepartmentId
                        select new
                        {
                            EmployeeName = e.EmployeeName,
                            DepartementName = d.Name,
                        });
            foreach (var e in list) 
            {
                Console.WriteLine("Emplyee Name = {0},Demartment Name = {1}", e.EmployeeName, e.DepartementName);
            }
            Console.ReadKey();

            List<String> wordss = new List<String>() { "an", "a", "apple", "day" };
            var query6 = from word in wordss
                        select word.Substring(0, 1);
            

            //orderby排序
            int[] num = { -20, 55, 23, 98, 44, 75, 36 };
            var posNums = from n in num
                          orderby n descending
                          select n;
            foreach(var i in posNums)
            {
                Console.WriteLine(i);
            }
            Console.ReadKey();



            //group...by...分组
            List<int> numbers = new List<int>() { 256, 45, 89, 36, 21, 77, 558, 62, 33 };
            IEnumerable<IGrouping<int, int>> query9 = from number in numbers
                                                     group number by number % 2;

            foreach(var group in query)
            {
                Console.WriteLine(group);
                foreach (int i in group)
                    Console.WriteLine(i);
            }
            Console.ReadLine();


            //Concat列表字典值合并 lambda表达式
            IEnumerable<String> query7 = departments.Select(dep => dep.Name).Concat(employees.Select(emp => emp.EmployeeName));
            foreach (var e in query7) 
            {
                Console.WriteLine(e);
            }
            Console.WriteLine(departments.GetType());
            Console.ReadKey();


            //DefaultIfEmpty空集
            pet barley = new pet() { Name = "Barley", Age = 4 };
            pet boots = new pet() { Name = "Boots", Age = 1};
            pet Whiskers = new pet() { Name = "Whiskers", Age = 6 };
            pet BlueMoon = new pet() { Name = "Blue Moon", Age = 9 };
            pet Daisy = new pet() { Name = "Daisy", Age = 3 };

            List<pet> pats = new List<pet>() { barley ,boots, Whiskers, BlueMoon, Daisy};
            foreach (var pat in pats.DefaultIfEmpty()) 
            {
                Console.WriteLine(pat.Name);
            
            }
            Console.ReadKey();


            //range lambda表达式
            IEnumerable<int> squares = Enumerable.Range(1, 5).Select(x => x * x); //lambda表达式
            foreach (int num1 in squares)
            {
                Console.WriteLine(num1);
            }
            Console.ReadKey();
            //out:1,4,9,16,25


            //Repeat重复写3遍
            IEnumerable<string> Joker = Enumerable.Repeat("Joker is handsome",3);
            foreach (String j in Joker)
            {
                Console.WriteLine(j);
            }
            Console.ReadKey();


            //Except排除重复值
            double[] number1 = { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 };
            double[] number2 = { 2.2 };
            IEnumerable<double> onlyinFirstset = number1.Except(number2);
            foreach (var i in onlyinFirstset)
            {
                Console.WriteLine(i);
            }
            Console.ReadKey();


            //获取列表重复值
            int[] id1 = { 44, 55, 22, 36, 89, 74, 51, 36 };
            int[] id2 = { 11, 22, 33, 66, 77 };
            IEnumerable<int> both = id1.Intersect(id2);
            foreach (var k in both)
            {
                Console.WriteLine(k);
            }
            Console.ReadKey();

            //union列表合并去重
            IEnumerable<int> union = id1.Union(id2);
            foreach (int h in union)
            {
                Console.WriteLine(h);
            }
            Console.ReadKey();


            //SequenceEqual判断是否相等
            pet joker = new pet() { Name = "joker", Age = 22 };
            pet bank = new pet() { Name = "bank", Age = 24 };
            pet liyinhang = new pet() { Name = "liyinhang", Age = 26 };

            List<pet> pets1 = new List<pet>() { joker, bank };
            List<pet> pets2 = new List<pet>() { joker, bank };
            List<pet> pets3 = new List<pet>() { joker, bank, liyinhang };

            bool equal1 = pets1.SequenceEqual(pets2);
            bool equal3 = pets1.SequenceEqual(pets3);
            Console.WriteLine("the list pets1 and pets2 {0} equal.", equal1 ? "are" : "not are");
            Console.WriteLine("the list pets1 and pets3 {0} equal.", equal3 ? "are" : "not are");
            Console.ReadKey();


            //Random获取列表随机值
            string[] names =
              { "Hartono, Tommy", "Adams, Terry", "Andersen, Henriette Thaulow",
                "Hedlund, Magnus", "Ito, Shu" };
            Random random = new Random(DateTime.Now.Millisecond);
            string name = names.ElementAt(random.Next(0, names.Length));
            Console.WriteLine("The name chosen at random is '{0}'.", name);
            Console.ReadKey();


            //First获取列表第一个和Last最后一个
            int[] numbers1 = { 9, 34, 65, 92, 87, 435, 3, 54,
                          83, 23, 87, 435, 67, 12, 19 };

            int first = numbers1.First();
            int last = numbers1.Last();
            Console.WriteLine(first);
            Console.WriteLine(last);
            Console.ReadLine();


            //Environment.NewLine 换行 StringBuilder字符集
            string[] tools = { "Tablesaw", "Bandsaw", "Planer", "Jointer", "Drill",
                         "Sander" };
            var listt = from t in tools
                       select t;

            StringBuilder sb = new StringBuilder();

            foreach (string s in listt)
            {
                sb.Append(s + Environment.NewLine);
            }
            Console.WriteLine(sb.ToString(), "Tools");
            Console.ReadLine();


        }
    }
}    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

͝͝͝͝͝͝͝͝͝͝L Y H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值