首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq选择子群

Linq选择子群
EN

Stack Overflow用户
提问于 2011-03-28 09:06:38
回答 3查看 357关注 0票数 0

我的db表中有以下内容:

代码语言:javascript
复制
- MailingId | GroupName | ServiceId
-   1       |  group1   |   3
-   2       |  group1   |   5
-   3       |  group1   |   8
-   4       |  group2   |   null
-   5       |  group3   |   null
...

在我看来,我有两组复选框:

(服务)带有id的3,5,8 (serviceId).

  • 2)和邮件组(group1、group2、group3)

的复选框列表

我需要使用LINQ选择以下内容:

选择我在ServiceId复选框列表中选择的行以及任何其他行。例如,如果我选中了ServiceId (3和5)和组"Group3“,那么我的输出将是MailingId: 1、3和5行。但是,如果我从(第一组复选框)中选择了任何服务,并且不从邮件组复选框中选择" Group1”,那么输出中不应该包含Group1行。

我在用EF4。请帮帮忙。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-28 09:27:52

这两个数组将是从您的视图中发布的选择。

代码语言:javascript
复制
int[] selectedservices = {3,5};
string[] selectedgroups = {"group3"};

using (Model model = new Model())
{
    bool b = selectedservices.Contains(1);

            var mailinglists = from m in model.MalingSet
                               where selectedgroups.Contains(m.GroupName)
                               && ((m.ServiceId.HasValue && selectedservices.Contains(m.ServiceId.Value)) || m.ServiceId.HasValue == false)
                               select m.MailingId;
}
票数 2
EN

Stack Overflow用户

发布于 2011-03-28 09:16:02

试试这样的东西。

代码语言:javascript
复制
var mailingGroup =
    from m in Mailings
    where m.ServiceId != null // or whatever other condition
    group m by m.GroupName into g
    select new
    {
        groupName = g.Key,
        mailings = g
    };
票数 0
EN

Stack Overflow用户

发布于 2011-03-28 09:32:32

是哪里的条款不?

代码语言:javascript
复制
var a = new {m = 1, g = "group1", sid = 3};
var b = new {m = 2, g = "group1", sid = 5};
var c = new {m = 3, g = "group1", sid = 8};
var d = new {m = 4, g = "group2", sid = 0};
var e = new {m = 5, g = "group3", sid = 0};

var l = new List<dynamic>{a,b,c,d,e};

l.Where(it => ( new ArrayList{3, 5}).Contains(it.sid) 
               || (new ArrayList{1, 5}).Contains(it.m)).Dump();

http://www.linqpad.net/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5456767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档