Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 林克通过几个词进行排序_C#_Linq - Fatal编程技术网

C# 林克通过几个词进行排序

C# 林克通过几个词进行排序,c#,linq,C#,Linq,如果searchWords包含相同的单词2次,我如何排列此列表 var resultList = from c in context.Category join q in context.Question on c.CategoryId equals q.CategoryId join a in context.Answer on q.QuestionId equals a.QuestionId into QuestAnsw from a2 in QuestAnsw.De

如果searchWords包含相同的单词2次,我如何排列此列表

var resultList = from c in context.Category
    join q in context.Question on c.CategoryId equals q.CategoryId
    join a in context.Answer on q.QuestionId equals a.QuestionId into QuestAnsw
    from a2 in QuestAnsw.DefaultIfEmpty()
    where q.CustomerId == customerId 
    && (searchWords.Any(w => a2.Text.Contains(w))
    || searchWords.Any(w => c.Text.Contains(w))
    || searchWords.Any(w => q.Text.Contains(w)))
    select new { Category = c, Question = q };
我可以像下面这样做一个if语句吗

 && (searchWords.Any(w => a2.Text.Contains(w))
    || searchWords.Any(w => c.Text.Contains(w))
    || searchWords.Any(w => q.Text.Contains(w))) if(true) order
 select new { Category = c, Question = q };
我的上一个更改(它适用于子类别,但不适用于子类别)


如果要在顶部(或底部)显示匹配的项目,可以根据您的条件设置顺序:

var resultList = from c in context.Category
    join q in context.Question on c.CategoryId equals q.CategoryId
    join a in context.Answer on q.QuestionId equals a.QuestionId into QuestAnsw
    from a2 in QuestAnsw.DefaultIfEmpty()
    where q.CustomerId == customerId 
    orderby 
        (searchWords.Any(w => a2.Text.Contains(w))
        || searchWords.Any(w => c.Text.Contains(w))
        || searchWords.Any(w => q.Text.Contains(w))) 
    descending
    select new { Category = c, Question = q };
此外,如果需要设置匹配项之间的顺序,可以向顺序匹配项添加其他排序表达式:

var resultList = from c in context.Category
    join q in context.Question on c.CategoryId equals q.CategoryId
    join a in context.Answer on q.QuestionId equals a.QuestionId into QuestAnsw
    from a2 in QuestAnsw.DefaultIfEmpty()
    where q.CustomerId == customerId 
    orderby 
        (searchWords.Any(w => a2.Text.Contains(w))
        || searchWords.Any(w => c.Text.Contains(w))
        || searchWords.Any(w => q.Text.Contains(w))) 
    descending,
    a.Id ascending //<---additional sort expression
    select new { Category = c, Question = q };
var resultList=来自context.Category中的c
在上下文中加入q。关于c.CategoryId的问题等于q.CategoryId
在上下文中加入a。在q上回答。QuestionId等于a。QuestionId进入QuestAnsw
来自QuestAnsw.DefaultIfEmpty()中的a2
其中q.CustomerId==CustomerId
订货人
(searchWords.Any(w=>a2.Text.Contains(w))
||searchWords.Any(w=>c.Text.Contains(w))
||searchWords.Any(w=>q.Text.Contains(w)))
下降,

a、 Id升序//如果要在顶部(或底部)显示匹配的项目,可以根据您的条件设置顺序:

var resultList = from c in context.Category
    join q in context.Question on c.CategoryId equals q.CategoryId
    join a in context.Answer on q.QuestionId equals a.QuestionId into QuestAnsw
    from a2 in QuestAnsw.DefaultIfEmpty()
    where q.CustomerId == customerId 
    orderby 
        (searchWords.Any(w => a2.Text.Contains(w))
        || searchWords.Any(w => c.Text.Contains(w))
        || searchWords.Any(w => q.Text.Contains(w))) 
    descending
    select new { Category = c, Question = q };
此外,如果需要设置匹配项之间的顺序,可以向顺序匹配项添加其他排序表达式:

var resultList = from c in context.Category
    join q in context.Question on c.CategoryId equals q.CategoryId
    join a in context.Answer on q.QuestionId equals a.QuestionId into QuestAnsw
    from a2 in QuestAnsw.DefaultIfEmpty()
    where q.CustomerId == customerId 
    orderby 
        (searchWords.Any(w => a2.Text.Contains(w))
        || searchWords.Any(w => c.Text.Contains(w))
        || searchWords.Any(w => q.Text.Contains(w))) 
    descending,
    a.Id ascending //<---additional sort expression
    select new { Category = c, Question = q };
var resultList=来自context.Category中的c
在上下文中加入q。关于c.CategoryId的问题等于q.CategoryId
在上下文中加入a。在q上回答。QuestionId等于a。QuestionId进入QuestAnsw
来自QuestAnsw.DefaultIfEmpty()中的a2
其中q.CustomerId==CustomerId
订货人
(searchWords.Any(w=>a2.Text.Contains(w))
||searchWords.Any(w=>c.Text.Contains(w))
||searchWords.Any(w=>q.Text.Contains(w)))
下降,

a、 Id升序//如果要在顶部(或底部)显示匹配的项目,可以根据您的条件设置顺序:

var resultList = from c in context.Category
    join q in context.Question on c.CategoryId equals q.CategoryId
    join a in context.Answer on q.QuestionId equals a.QuestionId into QuestAnsw
    from a2 in QuestAnsw.DefaultIfEmpty()
    where q.CustomerId == customerId 
    orderby 
        (searchWords.Any(w => a2.Text.Contains(w))
        || searchWords.Any(w => c.Text.Contains(w))
        || searchWords.Any(w => q.Text.Contains(w))) 
    descending
    select new { Category = c, Question = q };
此外,如果需要设置匹配项之间的顺序,可以向顺序匹配项添加其他排序表达式:

var resultList = from c in context.Category
    join q in context.Question on c.CategoryId equals q.CategoryId
    join a in context.Answer on q.QuestionId equals a.QuestionId into QuestAnsw
    from a2 in QuestAnsw.DefaultIfEmpty()
    where q.CustomerId == customerId 
    orderby 
        (searchWords.Any(w => a2.Text.Contains(w))
        || searchWords.Any(w => c.Text.Contains(w))
        || searchWords.Any(w => q.Text.Contains(w))) 
    descending,
    a.Id ascending //<---additional sort expression
    select new { Category = c, Question = q };
var resultList=来自context.Category中的c
在上下文中加入q。关于c.CategoryId的问题等于q.CategoryId
在上下文中加入a。在q上回答。QuestionId等于a。QuestionId进入QuestAnsw
来自QuestAnsw.DefaultIfEmpty()中的a2
其中q.CustomerId==CustomerId
订货人
(searchWords.Any(w=>a2.Text.Contains(w))
||searchWords.Any(w=>c.Text.Contains(w))
||searchWords.Any(w=>q.Text.Contains(w)))
下降,

a、 Id升序//如果要在顶部(或底部)显示匹配的项目,可以根据您的条件设置顺序:

var resultList = from c in context.Category
    join q in context.Question on c.CategoryId equals q.CategoryId
    join a in context.Answer on q.QuestionId equals a.QuestionId into QuestAnsw
    from a2 in QuestAnsw.DefaultIfEmpty()
    where q.CustomerId == customerId 
    orderby 
        (searchWords.Any(w => a2.Text.Contains(w))
        || searchWords.Any(w => c.Text.Contains(w))
        || searchWords.Any(w => q.Text.Contains(w))) 
    descending
    select new { Category = c, Question = q };
此外,如果需要设置匹配项之间的顺序,可以向顺序匹配项添加其他排序表达式:

var resultList = from c in context.Category
    join q in context.Question on c.CategoryId equals q.CategoryId
    join a in context.Answer on q.QuestionId equals a.QuestionId into QuestAnsw
    from a2 in QuestAnsw.DefaultIfEmpty()
    where q.CustomerId == customerId 
    orderby 
        (searchWords.Any(w => a2.Text.Contains(w))
        || searchWords.Any(w => c.Text.Contains(w))
        || searchWords.Any(w => q.Text.Contains(w))) 
    descending,
    a.Id ascending //<---additional sort expression
    select new { Category = c, Question = q };
var resultList=来自context.Category中的c
在上下文中加入q。关于c.CategoryId的问题等于q.CategoryId
在上下文中加入a。在q上回答。QuestionId等于a。QuestionId进入QuestAnsw
来自QuestAnsw.DefaultIfEmpty()中的a2
其中q.CustomerId==CustomerId
订货人
(searchWords.Any(w=>a2.Text.Contains(w))
||searchWords.Any(w=>c.Text.Contains(w))
||searchWords.Any(w=>q.Text.Contains(w)))
下降,

a、 你能详细说明一下你的代码是做什么的,你希望它做什么吗?从一个庞大的linq查询中找出它比阅读它应该做什么的描述更容易出错。你说它不适用于子类别是什么意思?你能添加示例数据吗?如果我搜索“生病”和“假期”(在我的ui中),它会显示我的菜单,按问题和标题类别排序,单词“生病”和“假期”都是。这是正确的。但我的菜单也有子类别。子类别可以是假期,问题是生病,例如,它不会订购它。只需标题类别和问题。向问题添加sreenshot或真实数据。我不知道你们的类的结构,也不明白你们能详细说明你们的代码是做什么的,你们希望它做什么吗?从一个庞大的linq查询中找出它比阅读它应该做什么的描述更容易出错。你说它不适用于子类别是什么意思?你能添加示例数据吗?如果我搜索“生病”和“假期”(在我的ui中),它会显示我的菜单,按问题和标题类别排序,单词“生病”和“假期”都是。这是正确的。但我的菜单也有子类别。子类别可以是假期,问题是生病,例如,它不会订购它。只需标题类别和问题。向问题添加sreenshot或真实数据。我不知道你们的类的结构,也不明白你们能详细说明你们的代码是做什么的,你们希望它做什么吗?从一个庞大的linq查询中找出它比阅读它应该做什么的描述更容易出错。你说它不适用于子类别是什么意思?你能添加示例数据吗?如果我搜索“生病”和“假期”(在我的ui中),它会显示我的菜单,按问题和标题类别排序,单词“生病”和“假期”都是。这是正确的。但我的菜单也有子类别。子类别可以是假期,问题是生病,例如,它不会订购它。只需标题类别和问题。向问题添加sreenshot或真实数据。我不知道你们的类的结构,也不明白你们能详细说明你们的代码是做什么的,你们希望它做什么吗?从一个庞大的linq查询中找出它比阅读它应该做什么的描述更容易出错。你说它不适用于子类别是什么意思?你能添加示例数据吗?如果我搜索“生病”和“假期”(在我的ui中),它会显示我的菜单,按问题和标题类别排序,单词“生病”和“假期”都是。这是正确的。但我的菜单也有子类别。子类别可以是假期,问题是生病,例如,它不会订购它。只需标题类别和问题。向问题添加sreenshot或真实数据。我不知道你的cl的结构