using System;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
public class Test
{
public static void Main()
{
// your code goes here
List<MyObject> objects = new List<MyObject> {
new MyObject { Id = 1, FirstName = "Bob", LastName = "Green" },
new MyObject { Id = 2, FirstName = "", LastName = "Black" },
new MyObject { Id = 3, FirstName = "Joe", LastName = "" },
new MyObject { Id = 4, FirstName = null, LastName = "White" },
new MyObject { Id = 5, FirstName = "Mike", LastName = "Brown" }
};
var stringProperties = typeof(MyObject)
.GetProperties()
.Where(p => p.PropertyType == typeof(string))
.ToArray();
objects.RemoveAll(o =>
stringProperties.Any(p => String.IsNullOrEmpty((string)p.GetValue(o, null))));
foreach(var obj in objects)
Console.WriteLine("{0} {1} {2}", obj.Id, obj.FirstName, obj.LastName);
}
}
public class MyObject
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247CnVzaW5nIFN5c3RlbS5MaW5xOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQkKICAgIExpc3Q8TXlPYmplY3Q+IG9iamVjdHMgPSBuZXcgTGlzdDxNeU9iamVjdD4gewogICAgICAgIG5ldyBNeU9iamVjdCB7IElkID0gMSwgRmlyc3ROYW1lID0gIkJvYiIsIExhc3ROYW1lID0gIkdyZWVuIiB9LAogICAgICAgIG5ldyBNeU9iamVjdCB7IElkID0gMiwgRmlyc3ROYW1lID0gIiIsIExhc3ROYW1lID0gIkJsYWNrIiB9LAogICAgICAgIG5ldyBNeU9iamVjdCB7IElkID0gMywgRmlyc3ROYW1lID0gIkpvZSIsIExhc3ROYW1lID0gIiIgfSwKICAgICAgICBuZXcgTXlPYmplY3QgeyBJZCA9IDQsIEZpcnN0TmFtZSA9IG51bGwsIExhc3ROYW1lID0gIldoaXRlIiB9LAogICAgICAgIG5ldyBNeU9iamVjdCB7IElkID0gNSwgRmlyc3ROYW1lID0gIk1pa2UiLCBMYXN0TmFtZSA9ICJCcm93biIgfQogICAgfTsKCiAgICB2YXIgc3RyaW5nUHJvcGVydGllcyA9IHR5cGVvZihNeU9iamVjdCkKICAgICAgICAgLkdldFByb3BlcnRpZXMoKQogICAgICAgICAuV2hlcmUocCA9PiBwLlByb3BlcnR5VHlwZSA9PSB0eXBlb2Yoc3RyaW5nKSkKICAgICAgICAgLlRvQXJyYXkoKTsKCiAgICBvYmplY3RzLlJlbW92ZUFsbChvID0+CnN0cmluZ1Byb3BlcnRpZXMuQW55KHAgPT4gU3RyaW5nLklzTnVsbE9yRW1wdHkoKHN0cmluZylwLkdldFZhbHVlKG8sIG51bGwpKSkpOwoKICAgICBmb3JlYWNoKHZhciBvYmogaW4gb2JqZWN0cykKICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJ7MH0gezF9IHsyfSIsIG9iai5JZCwgb2JqLkZpcnN0TmFtZSwgb2JqLkxhc3ROYW1lKTsKCgl9Cn0KCiBwdWJsaWMgY2xhc3MgTXlPYmplY3QKICAgIHsKICAgICAgICBwdWJsaWMgaW50IElkIHsgZ2V0OyBzZXQ7IH0KICAgICAgICBwdWJsaWMgc3RyaW5nIEZpcnN0TmFtZSB7IGdldDsgc2V0OyB9CiAgICAgICAgcHVibGljIHN0cmluZyBMYXN0TmFtZSB7IGdldDsgc2V0OyB9CiAgICB9