在C#中过滤数组
我有一个对象数组(例如Car []),并且对象上有一个IsAvailable属性
我想使用完整数组(其中IsAvailable对于某些项为true而对于其他项为false)作为输入并返回一个新数组,其中仅包含具有IsAvailable = true的项。
如果你使用C#3.0或更好……
public Car[] Filter(Car[] input) { return input.Where(c => c.IsAvailable).ToArray(); }
如果您无法访问LINQ(您使用的是旧版本的.NET)…
public Car[] Filter(Car[] input) { List availableCars = new List (); foreach(Car c in input) { if(c.IsAvailable) availableCars.Add(c); } return availableCars.ToArray(); }
令人惊讶的是,这个问题缺乏最自然和最有效的答案: Array.FindAll
Car[] availableCars = Array.FindAll(cars, c => c.IsAvailable);
如果它是List
那么还有一个List.FindAll
。
最简单的方法:
Car[] cars = //... Car[] filtered = cars.Where(c => c.IsAvailable).ToArray();
可能更高效:
Car [] cars = //... List filteredList = new List (); for(int i = 0; i < cars.Length; i++) { if(cars[i].IsAvailable) filteredList.Add(cars[i]); } Car[] filtered = filteredList.ToArray();
一个简单的解决方案是创建一个新数组,遍历输入数组并仅将满足条件的项添加到新数组,并返回新数组:
List available = new List (); foreach (Car c in cars) { if (c.IsAvailable) { available.add(c); } } //Here you can either just return the list, or create an array from it.
var available = from c in cars where c.IsAvailable == true select c;
要么
var available = cars.Where(c => c.IsAvailable == true);
数组是满足以下条件的filter数组:
- 如果列表中存在9,则13也必须存在
- 如果列表中存在7,那么11必须不存在
解
int[] a = {7 , 72, 6, 13, 9 }; int i, k = 0, l = 0, m = 0, n = 0; for (i = 0; i < a.Length; i++) { if (a[i] == 9) { k = 1; } } for (i = 0; i < a.Length; i++) { if (a[i] == 13) { l = 1; } } for (i = 0; i < a.Length; i++) { if (a[i] == 7) { m = 1; } } for (i = 0; i < a.Length; i++) { if (a[i] == 11) { n= 1; } } if ((k == 1 && l == 1) && (m == 1 && n == 1)) { Console.WriteLine("is not filter array"); } else if (k == 1 && l!= 1) { Console.WriteLine("is not filter array"); } else if (m ==1 && n==1) { Console.WriteLine("is not filter array "); } else Console.WriteLine("is filter array"); Console.WriteLine("the element of an array is:"); for (i = 0; i < a.Length; i++) { Console.WriteLine(a[i]); }
我认为如果你需要测试一个数组,这个代码肯定会起作用。
lob seboka ambo universtity woliso campuse信息部门TECH。!!
上述就是C#学习教程:在C#中过滤数组分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1003837.html