首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

问一个linq语句的写法解决方法

2012-03-24 
问一个linq语句的写法1. 对象Listmodel lsitlist.a intlist.b floatlist.c float2.数组对象 float[] arr

问一个linq语句的写法

1. 对象List<model> lsit 
  list.a int 
  list.b float
  list.c float

2.数组对象 float[] arr

如何查找符合 数组arr的index 和 list.a 相等 ,并且 arr[index] 的值 大于等于 list.b ,小于 list.c 条件的 model

Ps: list 的cout 比 arr的 length 小很多

[解决办法]

C# code
void Main(){    var list=new List<model>    {        new model{ a=1, b=1.1F,c=1.8F},        new model{ a=2, b=2.2F,c=1.4F},        new model{ a=3, b=3.1F,c=1.6F},        new model{ a=5, b=4.1F,c=1.5F},        new model{ a=7, b=5.1F,c=1.3F},        new model{ a=9, b=7.1F,c=1.7F},        new model{ a=4, b=8.1F,c=1.9F},        new model{ a=11, b=11.1F,c=1.66F},        new model{ a=6, b=12.1F,c=1.22F}    };    float[] arr=new float[]{1F,1.2F,1.3F,1.4F,1.5F,1.6F,1.7F,2.2F,3.3F,4.4F,5.5F,6.6F,7.7F};     var query=from a in arr.Select((a,b)=>new{index=b,value=a})               join l in list               on a.index equals l.a               where a.value>=l.b && a.value<l.c               select l;    Console.WriteLine("a\tb\tc");    query.ToList().ForEach(q=>Console.WriteLine("{0}\t{1}\t{2}",q.a,q.b,q.c));    /*    a    b    c    1    1.1    1.8    */}public class model{ public int a{get;set;} public float b{get;set;} public float c{get;set;}}
[解决办法]
探讨

[解决办法]
C# code
     var s = from m in list             where (arr[m.a] >= m.b) && (arr[m.a] <= m.c)             select m; 

热点排行