1

我需要将下面的前后组合成一个结果,然后将其传递给datagridview。我使用 before + after 因为我不知道如何组合结果。

        private void textBox6_Leave(object sender, EventArgs e)
    {
        DataClasses3DataContext db = new DataClasses3DataContext();

        int matchedAdd = (from c in db.GetTable<prop>()
                          where c.HOUSE_NO.Contains(textBox1.Text) && c.Direction.Contains(textBox2.Text) && c.street.Contains(textBox3.Text) && c.SUFF.Contains(textBox4.Text)
                          select c.ID).SingleOrDefault();

        var before = (from c in db.GetTable<prop>()
                      where c.ID < matchedAdd
                      orderby c.PARCEL descending
                      select c).Take(6);

        var after = (from c in db.GetTable<prop>()
                     where c.ID > matchedAdd
                     orderby c.PARCEL
                     select c).Take(6);

        var endResult = before + after;

        dgvBRT.DataSource = endResult;
        dgvBRT.Databind();
4

2 回答 2

5

您想要的+before.Concat(after)before.Union(after),这取决于您希望如何处理重复项(联合删除重复项;连接不这样做;例如{1,2,2,3}concat{3,4}{1,2,2,3,3,4},其中{1,2,2,3}联合{3,4}{1,2,3,4}(尽管在联合情况下是否定义了顺序是值得怀疑的) )

于 2013-04-23T18:29:41.750 回答
1

您可以使用联合运算符:

var endresult = before.Union(after);
于 2013-04-23T18:29:28.677 回答