我有以下课程,其中包含评论:
public class Review
{
public string PartitionKey { get; set; }
public string RowKey { get; set; }
}
IEnumerable<Review> review = // Filled with about 1000 reviews
我还有一个包含主题的课程:
public class Topics
{
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public string Topic { get; set; }
}
IEnumerable<Topic> topic = // Filled with about 300 topics
Review中RowKey的第一个 SIX 字符与Topics中的RowKey相同。两种情况下的分区键都是空字符串而不使用。
我在评论课中有大约1000条记录,在主题类中有300条记录。
我是否有一种很好的方法可以使用LINQ将Review和Topics结合起来填充下面的新类:
public class ReviewGrid
{
public string PartitionKey { get; set; } // PartitionKey from Review
public string RowKey { get; set; } // RowKey from Review
public string Topic { get; set; } // This would be the Topic from Topics
}
如果我使用LINQ这样做会花费很长时间来创建,有没有办法让它创建更快?
答案 0 :(得分:1)
我认为您正在寻找PartitionKey的加入
var reviewGrids = (from r in review
join t in topic on r.RowKey.Substring(0, 6) equals t.RowKey
select new ReviewGrid
{
r.PartitionKey,
r.RoWKey,
t.Topic,
}).ToList();
答案 1 :(得分:0)
你试过这个吗?
IEnumerable<ReviewGrid> rivewGrid = (from r in review
join t in topic on r.PartitionKey equals t.PartitionKey
select new ReviewGrid {
PartitionKey = r.PartitionKey,
RowKey = r.RowKey,
Topic = t.Topic
})AsEnumerable<ReviewGrid>();
答案 2 :(得分:0)
var reviewGrid = r.Join(t,
x => x.PartitionKey + x.RowKey.Substring(6),
y => y.PartitionKey + x.RowKey,
(x,y)=>new { x.RowKey,x.PartitionKey,y.Topic } );